我想知道 Java 的 if 语句中两个条件表达式null == var
和var == null
之间的差异。
没有区别。只是风格问题。
第一个被称为尤达风格
在编程术语中,尤达条件(也称为尤达符号(是一种编程风格,其中表达式的两个部分在条件语句中颠倒。
尽管条件表达式null == var
和var == null
都是等价的。但是假设如果你通过拼写错误==
(检查相等性(作为=
(赋值(引入错误,那么var = null
不会给你错误并在代码中引入错误。而您编写null == var
并假设拼写错误null = var
则会产生编译时间错误。编译时错误比运行时错误更好。这是尤达条件形式的优点之一。
但我也建议你阅读对尤达延续的批评:
许多程序员讨厌它,因为它必须在精神上重新颠倒它才能理解它。(其他人显然没有这个问题(。这种做法被称为"尤达条件"。无论如何,大多数编译器都可以被说服警告条件下的赋值。
你也可以看看这个:
哪个更有效:if (null == 变量(和 if (变量 == null(?
没有区别。例如,考虑以下代码段
String x = null;
if(x==null)
{
System.out.println("null");
}
if(null==x)
{
System.out.println("no diff");
}
输出
null
no diff
这意味着没有区别
不,没有。当var
null
时,这两种说法都是正确的。