Rust空值

Rust中的空值

Rust中并没有Null值,而是None

None

None位于枚举类 Option<T>

1
2
3
4
enum Option<T> {
Some(T),
None,
}

对于一个变量,如果他的类型为T而不是Option<T>,则说明该变量不为空。

如果一个变量类型为Option<T>,则可能为空

获取Option<T>的值

对于Option<T> 我们不能直接进行运算。

1
2
3
4
5
6
let a = 10;
let b:Option<i32> = Some(20);
let c:Option<i32> = None;
//此行代码会报错
//let res = a + b;
println!("a={},b={},c={}",a,b.unwrap(),c.unwrap_or(-1));

运行结果为

1
a=10,b=20,c=-1

使用 unwrap() 将返回对应的Some值.

[RustWiki]: https://rustwiki.org/zh-CN/std/option/enum.Option.html#method.unwrap “unwrap()其他用法”