Rust 中的 Some 和 Option 有什么区别?

2024-01-10

它们是一样的吗?我有时可以看到文档使用它们,就好像它们是相等的一样。


不,它们不一样,并且文档将它们视为相同是错误的,或者是您的误解。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(使用前将#替换为@)

Rust 中的 Some 和 Option 有什么区别? 的相关文章

随机推荐