fn divide(a: i32, b: i32) -> Result<i32, &'static str> {
if b == 0 {
Err("Division by zero is not allowed")
} else {
Ok(a / b)
}
}
fn main() {
let result1 = divide(10, 2);
match result1 {
Ok(result) => println!("The result is: {}", result),
Err(error) => println!("Error: {}", error),
}
let result2 = divide(5, 0);
match result2 {
Ok(result) => println!("The result is: {}", result),
Err(error) => println!("Error: {}", error),
}
}
- 函数实现:
divide
函数接收两个i32
类型的参数a
和b
。
- 如果
b
为0,函数返回一个Err
,携带一个静态字符串错误信息。
- 如果
b
不为0,函数返回一个Ok
,携带a / b
的结果。
- 调用与处理:
- 在
main
函数中,调用divide
函数两次。
- 使用
match
表达式对返回的Result
进行模式匹配。
- 如果是
Ok
,则打印结果;如果是Err
,则打印错误信息。