它们是一样的吗?我有时可以看到文档使用它们,就好像它们是相等的一样。
不,它们不一样,并且文档将它们视为相同是错误的,或者是您的误解。Option
是一种类型(更准确地说,是泛型类型构造函数; Option<i32>
是一种类型,也是Option<String>
). Some
is a 构造函数。除了充当函数之外fn Some<T>(T x) -> Option<T>
,它也用于模式匹配:
let mut opt: Option<i32>; // type
opt = Some(1); // constructor
opt = None; // other constructor
match opt {
Some(x) => {
// pattern
println!("Got {}", x);
}
None => {
// other pattern
println!("Got nothing");
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)