MST

星途 面试题库

面试题:Rust中Result枚举类型推导基础应用

请编写一个Rust函数,该函数接收两个整数参数,尝试进行除法运算。如果除数为零,返回一个包含错误信息的`Result`枚举值;如果除法成功,返回包含运算结果的`Result`枚举值。并解释函数中`Result`枚举类型是如何推导的。
10.4万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
fn divide(a: i32, b: i32) -> Result<i32, &'static str> {
    if b == 0 {
        Err("除数不能为零")
    } else {
        Ok(a / b)
    }
}

Result枚举类型推导解释

  1. 定义:在Rust中,Result是一个枚举类型,定义如下:
enum Result<T, E> {
    Ok(T),
    Err(E),
}

T表示成功时的值的类型,E表示失败时错误信息的类型。 2. 本函数推导: - 当除法运算成功时,返回的是除法运算的结果,这个结果是i32类型,所以Result枚举的Ok变体中的类型参数Ti32。 - 当除数为零时,需要返回错误信息,这里选择了&'static str类型的字符串作为错误信息,所以Result枚举的Err变体中的类型参数E&'static str。因此整个函数的返回类型就是Result<i32, &'static str>