MoonBit 语言导览 MoonBit

Result类型

Option[Char]类似,枚举类型Result[Char, String]表示可能存在的字符值。当值缺失时,可携带String类型的错误信息。

其构造器包含两种形式:

  • Err("错误信息") 表示值缺失并携带错误描述
  • Ok('h') 作为包装器包含实际值'h'

当前示例中OptionResult的处理方式较为冗长且易出错。为安全、简洁地处理这些类型,推荐使用:

  1. 模式匹配 进行安全处理
  2. 错误处理 机制有效管理错误

这两个主题将在后续章节详细讲解。

fn first_char(s : String) -> Result[Char, String] {
  if s.length() == 0 {
    Err("empty string")
  } else {
    Ok(s[0])
  }
}

fn main {
  let c1  = first_char("hello")
  let c2  = first_char("")
  println("\{c1.is_ok()}, \{c1}, \{c1.unwrap()}")
  println("\{c2.is_err()}, \{c2}")
}