Permalink
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
26 lines (20 sloc) 724 Bytes
id title
nullability
Nullability

Option Type

The type option is defined as follows:

base class Option<T> {
  children = None()| Some(T)
}

That is useful when a value is sometimes present but not always. The way to de-sugar an Option value is by using pattern matching. Also, because the type is used so often, there is a bit of syntax to avoid spelling out the word Option every time. ?Int stands for Option<Int>. It is placed before (and not after) the type to keep the ? readily visible even with generics : MyGeneric<...>? is arguably less readable than ?MyGeneric<...>.

fun zeroIfUndefined(value: Option<Int>): Int {
  value match {
  | None() -> 0
  | Some(x) -> x
  }
}