let Some(...)
当两者都在同一行并且第二个let
依赖于第一个的情况下,是否可能出现这样的情况let
?
let Some(h) = socket.req_parts().headers.get("room"), let Some(room) = h.to_str() else {
return;
};
这个解决方案:
建议使用元组,但我不确定当第二个let
依赖于第一个时该怎么做。
let Some(...)
当两者都在同一行并且第二个let
依赖于第一个的情况下,是否可能出现这样的情况let
?
let Some(h) = socket.req_parts().headers.get("room"), let Some(room) = h.to_str() else {
return;
};
这个解决方案:
建议使用元组,但我不确定当第二个let
依赖于第一个时该怎么做。
你是对的,当依赖关系是通过函数调用时,你不能
let Some()
同时执行两个单独的依赖关系。@
在您的链接注释中显示“依赖”与标识符匹配的示例:这是有效的,因为它在某种意义上相当于
添加绑定
Some(7)
到c
. 依赖性在模式的左侧表达。你不能把你的函数调用放在那里。由于您想要进入子句
else
if anotherh
orroom
would beNone
,因此您可以使用Option.and_then
,它接受一个返回 an 的函数Option
作为其参数,并且仅将其应用于Some
。如果您只需要以下内容,这是最干净的room
:但您也可以使用元组来获取
room
和h
: