如何接收可选元组 return 值
How to receive optional tuple return values
我有一个看起来像这样的函数:
fn some_func() -> Option<(String, i32)>
当我尝试这样做时:
let (a, b) = some_func();
编译器抛出此错误:
expected enum `Option`, found tuple
如何从函数接收 return 值?
您可以在 some_func()
上调用 Some()
来访问值(或者在没有值的情况下,None()
)。
在 Rust 中执行此操作的惯用方法是使用 match
语句。
match some_func() {
Some((x, y)) => println!("{} {}", x, y),
None => panic!("no vals"),
}
或者如果您想像示例中那样使用赋值(但它不会处理 None
):
let (a, b) = some_func().unwrap();
println!("{} {}", a, b);
游乐场here.
更新后的游乐场 .expect()
而不是 .unwrap()
here。
更重要的一点是,如果 (a, b)
是 None
。
,那么您不太可能想在此块中继续
我有一个看起来像这样的函数:
fn some_func() -> Option<(String, i32)>
当我尝试这样做时:
let (a, b) = some_func();
编译器抛出此错误:
expected enum `Option`, found tuple
如何从函数接收 return 值?
您可以在 some_func()
上调用 Some()
来访问值(或者在没有值的情况下,None()
)。
在 Rust 中执行此操作的惯用方法是使用 match
语句。
match some_func() {
Some((x, y)) => println!("{} {}", x, y),
None => panic!("no vals"),
}
或者如果您想像示例中那样使用赋值(但它不会处理 None
):
let (a, b) = some_func().unwrap();
println!("{} {}", a, b);
游乐场here.
更新后的游乐场 .expect()
而不是 .unwrap()
here。
更重要的一点是,如果 (a, b)
是 None
。