面试题答案
一键面试在Rust中,Option
枚举用于处理可能为空的值。Option
有两个变体:Some(T)
,用于包含一个值;None
,用于表示空值。
示例代码如下:
fn square_option(num: Option<i32>) -> i32 {
match num {
Some(n) => n * n,
None => 0,
}
}
在上述代码中,square_option
函数接收一个Option<i32>
类型的参数num
。通过match
语句对num
进行模式匹配,如果num
是Some(n)
,则返回n
的平方;如果num
是None
,则返回0
。
还可以使用unwrap_or
方法来简化上述代码:
fn square_option(num: Option<i32>) -> i32 {
num.unwrap_or(0) * num.unwrap_or(0)
}
unwrap_or
方法会返回Option
中的值,如果是None
,则返回传入的默认值。这里两次调用unwrap_or(0)
,如果num
是Some
,则返回其中的值并计算平方;如果是None
,则使用默认值0
计算平方。