面试题答案
一键面试fn divide(a: i32, b: i32) -> Result<i32, &'static str> {
if b == 0 {
Err("除数不能为零")
} else {
Ok(a / b)
}
}
Result
枚举类型推导解释
- 定义:在Rust中,
Result
是一个枚举类型,定义如下:
enum Result<T, E> {
Ok(T),
Err(E),
}
T
表示成功时的值的类型,E
表示失败时错误信息的类型。
2. 本函数推导:
- 当除法运算成功时,返回的是除法运算的结果,这个结果是i32
类型,所以Result
枚举的Ok
变体中的类型参数T
为i32
。
- 当除数为零时,需要返回错误信息,这里选择了&'static str
类型的字符串作为错误信息,所以Result
枚举的Err
变体中的类型参数E
为&'static str
。因此整个函数的返回类型就是Result<i32, &'static str>
。