选项类型

另一个需要模式匹配的有用类型是多态选项类型 opt . 它可以用于捕获值,也可以指定没有值:

fun divide (x:int, y:int) =>
  if y == 0 then None[int]
  else Some (x/y)
  endif
;

模式匹配可选值

具体做法如下:

proc printopt (x: opt[int]) {
  match x with
  | Some v => println$ "Result is " + v.str;
  | None => println$ "No result";
  endmatch;
}