`return 5;`Rust中的语句或表达式?

Nan*_*iao 8 rust

我不是一个挑剔者,而是来自陈述和表达:

我们实际上已经使用过语句和表达式.语句是执行某些操作但不返回值的指令.表达式评估结果值.我们来看一些例子.

......

表达式不包括结尾分号.如果在表达式的末尾添加分号,则将其转换为语句,然后不返回值.在您接下来探索函数返回值和表达式时,请记住这一点.

那么return 5;,它是一个陈述还是表达?如果是声明,则声明不应返回值; 如果是表达式,则表达式不应具有结尾分号.

Sne*_*tel 8

那里的措辞不准确.当它表示"一个语句......不会返回一个值"时,它意味着一个语句不会通过将其计算为最终值(作为表达式)来处理,而是通过执行它来处理.在return语句的情况下,执行采用退出当前函数的形式,将返回值传递给调用函数.

return 5; 绝对是一个声明.

  • 值得注意的是,`return`绝对是*表达式.它就是`return 5;`是一个表达式语句,其中表达式是一个`return`表达式.并且只是为了预防潜在的后续行动:`return`表达式的值是`!`. (5认同)
  • @DK 只是为了挑剔, `!` 是 `return` 表达式的_type_,而不是它的值。`!` 类型的定义属性是它没有任何值。 (2认同)