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[0])
}
}
fn main {
let c1 = first_char("hello")
let c2 = first_char("")
println("\{c1.is_ok()}, \{c1}, \{c1.unwrap()}")
println("\{c2.is_err()}, \{c2}")
}