Bru*_*uce 5 convention variables rust
在以下情况下是否有变量命名约定?我发现自己必须有两个名字,一个是可选的,一个是未包装的。
let user = match optional_user {
Some(u) => {
u
}
None => {
new("guest", "guest").unwrap()
}
};
Run Code Online (Sandbox Code Playgroud)
我不确定是否有约定,但我经常看到(并使用)maybesieOption
let maybe_thing: Option<Thing> = ...
let thing: Thing = ...
Run Code Online (Sandbox Code Playgroud)
另外,就您在这种情况下使用u和而言,两个地方都user使用就可以了。userIE
let user = match maybe_user {
Some(user) => user,
...
Run Code Online (Sandbox Code Playgroud)
这是因为匹配表达式将在赋值之前进行计算let。
然而(稍微偏离主题)@Manishearth 是正确的,在这种情况下,使用or_else. IE
let user = maybe_user.or_else(|| new("guest", "guest")).unwrap();
Run Code Online (Sandbox Code Playgroud)
我建议也熟悉其余的Option方法,因为它们非常适合减少match样板代码。