Result 类型
与Option[Char]类似,枚举类型Result[Char, String]表示可能存在的字符值。当值缺失时,可携带String类型的错误信息。
其构造器包含两种形式:
- Err("错误信息")表示值缺失并携带错误描述
- Ok('h')作为包装器包含实际值- 'h'
当前示例中Option和Result的处理方式较为冗长且易出错。为安全、简洁地处理这些类型,推荐使用:
- 模式匹配 进行安全处理
- 错误处理 机制有效管理错误
这两个主题将在后续章节详细讲解。
fn first_char(s : String) -> Result[Char, String] {
  if s.length() == 0 {
    Err("empty string")
  } else {
    Ok(s.get_char(0).unwrap())
  }
}
fn main {
  let c1  = first_char("hello")
  let c2  = first_char("")
  println("\{c1.is_ok()}, \{c1}, \{c1.unwrap()}")
  println("\{c2.is_err()}, \{c2}")
}