{ do_-6ren">
gpt4 book ai didi

rust - 如果让表达式如何 "read"?

转载 作者:行者123 更新时间:2023-12-03 11:24:29 24 4
gpt4 key购买 nike

在 Rust 中,您可以使用 if let而不是 match当涉及到展开并直接使用一个简单的值时。
所以而不是

match opt_val {
Some(x) => {
do_something_with(x);
}
_ => {}
}
you can do
if let Some(x) = opt_val {
do_something_with(x);
}
我应该如何在精神上阅读或处理这段代码?对于 match ,这很简单:“如果 opt_valSome(x) 匹配,则使用 x 执行...”。
对于 if let我总是觉得这是错误的方式:“如果 Some(x) 匹配(?) opt_val ,那么做......”。注意没有 let在这句话中。
这没什么大不了的,但我继续为此绊倒。

我真的很喜欢接受的答案中的“如果这让绑定(bind)成功...”,因为我认为它设置了正确的焦点。首先过多地关注模式匹配让我陷入了这个“问题”。
作为引用,(ir)可反驳性和 let讨论 here在 Rust 书中。

最佳答案

您不应该期望任何编程语言的语法中的关键字直接映射到英语或任何其他自然语言中的单词。let Rust 中的表达式总是接受一个模式,它可以让你做如下事情:

let foo = (1, (2, 3));
let (a, (b, _)) = foo;
然而,这只适用于模式无可辩驳的情况,即它总是匹配的。 if let扩展它以适应可能并不总是匹配的类型。
您如何阅读它很好:“如果模式匹配则...”或“如果 this let 绑定(bind)成功则...”。

关于rust - 如果让表达式如何 "read"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65684540/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com