gpt4 book ai didi

java - 'a == null' 和 'null == a' 之间的区别

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:59:30 25 4
gpt4 key购买 nike

在检查变量是否为 null 时,我发现建议的编码风格是 if(null == a)。这和 if(a == null) 有什么区别?

最佳答案

没有。

出于历史原因,人们有时会写成 null == a,因为它消除了 C 中与打字错误相关的错误的可能性。如果你要写:

if (a = NULL) { // note, only single =
...

在 C 中,这将执行赋值语句 a = NULL,语句的结果是分配的值(即 NULL)。因此,不是检查 a 的值,而是将其设置为 NULL,然后检查 if (NULL),它始终为 false。这编译,但几乎肯定不是你想要的。而这一切都是由于 === 的小拼写错误造成的。

如果你把NULL放在前面,那么if (NULL = a)是一个编译错误,因为你不能给NULL代表的常量赋值.

在 Java 中,不需要这样做,因为 if (null) {... 无法编译。 (您可以在 Java 中使用 boolean 变量仍然有相同的错误:if (someBooleanVar = someMethod())。但这是一种相对罕见的模式。)

这种风格有时被称为“Yoda conditions”,因为它让人想起尤达在星球大战中古怪的说话风格。

关于java - 'a == null' 和 'null == a' 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28594183/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com