答案 0 :(得分:11)
对于您的示例,正确的问题是:“如果y
不是5,那么x
的价值是多少?”。这会发生什么?
let x = 3;
let y = if x == 5 { 10 };
println!("{}", y); // what?!
您可以认为if-without-else表达式可以返回Option<_>
,但是......
Some()
&amp; else { None }
)即可获得相同的行为在Rust中,几乎所有东西都是一个表达式(let
除外) - 以分号结尾的绑定和表达式,所谓的表达式语句)。并且有一些表达式总是返回()
的例子,因为没有别的意义。这些包括(复合)分配(why?),循环和if-without-else。