簡體   English   中英

Rust 中的 Some 和 Option 有什么區別?

[英]What is the difference between Some and Option in Rust?

他們是一樣的嗎? 我有時可以看到文檔使用它們,就好像它們是平等的一樣。

Option類型定義為:

enum Option<T> {
    None,
    Some(T),
}

這意味着Option類型可以具有NoneSome值。

也可以看看:

不,它們不相同,並且將它們視為相同的文檔要么是錯誤的,要么是您的誤解。 Option是一種類型(更准確地說,是泛型類型構造函數Option<i32>是一種類型, Option<String>也是一種類型)。 Some是一個構造函數 除了充當函數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");
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM