首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“回复5”是“锈蚀”中的一种陈述或表达吗?

问“回复5”是“锈蚀”中的一种陈述或表达吗?
EN

Stack Overflow用户
提问于 2018-09-24 08:37:36
回答 2查看 1.5K关注 0票数 10

我不是吹毛求疵,而是来自语句和表达式

我们实际上已经使用了语句和表达式。语句是执行某些操作且不返回值的指令。表达式的计算结果值。让我们来看看一些例子。 . 表达式不包括结束分号。如果将分号添加到表达式的末尾,则将其转换为语句,然后语句将不返回值。在接下来探索函数返回值和表达式时,请记住这一点。

所以对于return 5;来说,它是一种语句还是表达式?如果是语句,则语句不应该返回值;如果是表达式,则表达式不应该有结束分号。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-24 08:44:02

那里的措辞不准确。当它说“一个statement...will不返回一个值”时,它意味着一个语句不是通过将它计算成一个最终值来处理的(就像表达式一样),而是通过执行它来处理。对于return语句,执行的形式是退出当前函数,将返回值传递给调用函数。

return 5;无疑是一种声明。

票数 10
EN

Stack Overflow用户

发布于 2020-09-23 14:43:32

您可以通过Rust宏找到答案:

代码语言:javascript
复制
macro_rules! expr_or_stmt {
    ($_:expr) => {
        "expr"
    };
    ($_:stmt) => {
        "stmt"
    };
}

fn main() {
    dbg!(expr_or_stmt!(return 5));
}

它打印"expr",正如您在游乐场上看到的那样。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52475457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档