我有一個(gè)函數(shù)如下所示:
fn some_func() -> Option<(String, i32)>
當(dāng)我嘗試這樣做時(shí):
let (a, b) = some_func();
編譯器拋出以下錯(cuò)誤:
expected enum `Option`, found tuple
如何從函數(shù)接收返回值?
我有一個(gè)函數(shù)如下所示:
fn some_func() -> Option<(String, i32)>
當(dāng)我嘗試這樣做時(shí):
let (a, b) = some_func();
編譯器拋出以下錯(cuò)誤:
expected enum `Option`, found tuple
如何從函數(shù)接收返回值?
公眾號(hào):1024技術(shù)圈
?? 提供互聯(lián)網(wǎng)知識(shí)和資訊,分享IT前沿技術(shù),熱門資源,大廠面試題 ??
您可以在
some_func()
上調(diào)用Some()
來訪問這些值(或者在沒有值的情況下,None()
)。在Rust中實(shí)現(xiàn)這一點(diǎn)的慣用方法是使用
match
語(yǔ)句。或者,如果您想像示例中那樣使用賦值(但它不會(huì)處理
None
):Playground here.
還有一個(gè)更新的游樂場(chǎng),用
.expect()
代替了這里的.unwrap()
。更重要的一點(diǎn)是,如果
(a, b)
是None
,則不太可能在這個(gè)塊中繼續(xù)。