Define a primitive data type: Difference between revisions
Content added Content deleted
m (→{{header|Sidef}}: added equality support) |
(Added FreeBASIC) |
||
Line 612: | Line 612: | ||
end program BoundedTest</lang> |
end program BoundedTest</lang> |
||
=={{header|FreeBASIC}}== |
|||
<lang freebasic>' FB 1.05.0 Win64 |
|||
Type MyInteger |
|||
Private: |
|||
Dim i_ As Integer |
|||
Public: |
|||
Declare Constructor(i_ As Integer) |
|||
Declare Property I() As Integer |
|||
Declare Operator Cast() As Integer |
|||
Declare Operator Cast() As String |
|||
End Type |
|||
Constructor MyInteger(i_ As Integer) |
|||
If i_ < 1 Then |
|||
i_ = 1 |
|||
ElseIf i_ > 10 Then |
|||
i_ = 10 |
|||
End If |
|||
This.i_ = i_ |
|||
End Constructor |
|||
Property MyInteger.I() As Integer |
|||
Return i_ |
|||
End Property |
|||
Operator MyInteger.Cast() As Integer |
|||
Return i_ |
|||
End Operator |
|||
Operator MyInteger.Cast() As String |
|||
Return Str(i_) |
|||
End Operator |
|||
Dim i As MyInteger = 11 ' implicit constructor call; i_ automatically limited to 10 |
|||
Dim j As MyInteger = 3 ' implicit constructor call; no adjustment needed |
|||
Dim k As Integer = 4 |
|||
Print "i = "; i; " j = " ; j; " k = "; k; " j + 6 ="; j.I + 6; " j + k ="; j + k |
|||
Print |
|||
Print "Press any key to quit" |
|||
Sleep</lang> |
|||
{{out}} |
|||
<pre> |
|||
i = 10 j = 3 k = 4 j + 6 = 9 j + k = 7 |
|||
</pre> |
|||
=={{header|Haskell}}== |
=={{header|Haskell}}== |