例如:
fn foo() -> Option<()> {
// ...
}
fn bar() -> Option<()> {
if let None = foo() { // <---- here
return None;
}
}
Run Code Online (Sandbox Code Playgroud)
然后我将 if 语句更改为:
if None == foo()
Run Code Online (Sandbox Code Playgroud)
它也有效。
可以使用a == b
代替if let a = b
吗?
回应和扩展Magnus Hoff 的观点,我只if let
在我关心与之匹配的值时使用。在这个例子中,我会使用类似的东西Option::is_none
来进一步强调我不在乎:
if foo().is_none() {
Run Code Online (Sandbox Code Playgroud)
正如fjh 指出的那样,这具有回避包装T
实现要求的微小好处。PartialEq
然而,根据我的经验,这种特殊的结构很少见,因为通常你想在这种Some
情况下做一些事情。一旦你有多个分支,我升级到一个match
语句。
归档时间: |
|
查看次数: |
1941 次 |
最近记录: |