我不是吹毛求疵,而是来自语句和表达式
我们实际上已经使用了语句和表达式。语句是执行某些操作且不返回值的指令。表达式的计算结果值。让我们来看看一些例子。 . 表达式不包括结束分号。如果将分号添加到表达式的末尾,则将其转换为语句,然后语句将不返回值。在接下来探索函数返回值和表达式时,请记住这一点。
所以对于return 5;来说,它是一种语句还是表达式?如果是语句,则语句不应该返回值;如果是表达式,则表达式不应该有结束分号。
发布于 2018-09-24 08:44:02
那里的措辞不准确。当它说“一个statement...will不返回一个值”时,它意味着一个语句不是通过将它计算成一个最终值来处理的(就像表达式一样),而是通过执行它来处理。对于return语句,执行的形式是退出当前函数,将返回值传递给调用函数。
return 5;无疑是一种声明。
发布于 2020-09-23 14:43:32
您可以通过Rust宏找到答案:
macro_rules! expr_or_stmt {
($_:expr) => {
"expr"
};
($_:stmt) => {
"stmt"
};
}
fn main() {
dbg!(expr_or_stmt!(return 5));
}它打印"expr",正如您在游乐场上看到的那样。
https://stackoverflow.com/questions/52475457
复制相似问题