Type unit
The most fundamental types in Fuzion are unit and void
A unit type is a type that has only one possible value. Passing a value of unit type to a function or assigning it to a field does not pass any actual information around.
The unit type hence plays a role similar to
type void in Java or C++ code. A difference is that the value of
unit type can be produced explicitly by calling its
constructor unit. The following example uses this to explicitly
return an instance of type unit by
feature print3times:
If we do not return unit explicitly, the result is that of the last call to say, which happens to be unit:
In case the last statement in a feature with result type unit does not result in a unit value, we get an error:
The result of an empty block is unit, so we can return {} explicitly:
or have unit as the implicit result of an empty feature: