你知道 赋值语句其实是有返回值的吗?

2019-03-11 11:26:49 +08:00
 rizon

今天写代码,偶然从 google 工具类的源码中发现了赋值语句是有返回值的! 然后我瞬间想明白了,一个之前困扰我许久的 if 语句块中直接使用赋值语句的那个很久之前的问题。 /t/531367

先放结果

    Long a;
    public Long test() {
        if ((a = 123L) == 321L) {
            System.out.println(a);
        }
        return a = 123L;
    }

网上有人分析过汇编,https://blog.csdn.net/w605283073/article/details/85219022

我估计还是有很多人不知道这件事,或者就是忘了,再或者就是没去想这个返回值是可以简化代码书写的。所以分享一下

7241 次点击
所在节点    程序员
41 条回复
Arxz
2019-03-12 06:24:43 +08:00
区分 expression 和 statement 不是基础吗

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/543248

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX