MoonBit 语言导览 MoonBit

Option类型

Option[Char]是表示可能存在的字符值的枚举类型,常用于处理可能缺失值的场景。其构造器包含两种可能:

  • None 表示值缺失
  • Some(e) 作为包装器包含实际值e

类型声明中的[Char]是类型参数,表示Option中值的类型为Char。同理可使用Option[String]Option[Double]等类型。关于泛型的详细内容将在后续章节展开。

类型注解Option[A]可简写为A?

您可以通过c1.is_empty()检查值是否缺失,使用c1.unwrap()获取包装值。

fn first_char(s : String) -> Option[Char] {
  if s.length() == 0 {
    None
  } else {
    Some(s[0])
  }
}

fn main {
  let c1 : Char? = first_char("hello")
  let c2 : Option[Char] = first_char("")
  println("\{c1.is_empty()}, \{c1.unwrap()}")
  println("\{c2.is_empty()}, \{c2}")
}