我想知道Java语句中的两个条件表达式null == var
和var == null
之间的差异。
答案 0 :(得分:8)
没有区别。仅仅是风格问题。
第一个名为yoda style
在编写术语时,Yoda条件(也称为Yoda表示法)是一种编程风格,其中表达式的两个部分在条件语句中相反。
虽然条件表达式null == var
和var == null
都是等同的。但是假设你通过拼写错误==
(检查相等)将错误引入=
(赋值),那么var = null
不会给你错误并在你的代码中引入错误。您编写null == var
并假设拼写错误null = var
时会产生编译时错误。编译时错误比运行时错误更好。这是尤达条件形式的优势之一。
但我也建议你阅读尤达延续的Criticism:
许多程序员讨厌它,因为它必须在心理上重新反转它才能理解它。 (其他人显然没有这个问题)。这种做法被称为“尤达条件”。无论如何,大多数编译器都可以被说服以警告条件中的任务。
答案 1 :(得分:2)
答案 2 :(得分:1)
没有区别。 例如,考虑以下代码
String x = null;
if(x==null)
{
System.out.println("null");
}
if(null==x)
{
System.out.println("no diff");
}
<强>输出强>
null
no diff
这意味着没有区别
答案 3 :(得分:0)
不,没有。当var
为null
时,这两个陈述都是正确的。