我想知道两个条件表达式 null == var
和var == null
Java 的 if 语句之间的区别。
问问题
304 次
4 回答
8
没有区别。只是风格问题。
第一个称为尤达风格
在编程术语中,Yoda 条件(也称为 Yoda 表示法)是一种编程风格,其中表达式的两个部分在条件语句中颠倒。
虽然这两个条件表达式都是等价的null == var
。var == null
但是假设如果您通过拼写错误==
(检查相等)作为=
(赋值)引入错误,那么var = null
不会给您错误并在代码中引入错误。而您编写null == var
并假设拼写错误null = var
会产生编译时错误。编译时错误比运行时错误更好。这是尤达条件形式的优点之一。
但我也建议你阅读对尤达续篇的批评:
许多程序员讨厌它,因为它必须在心理上重新反转它才能理解它。(其他人显然没有这个问题)。这种做法被称为“尤达条件”。无论如何,大多数编译器都可以被说服警告条件中的赋值。
于 2013-09-23T10:06:41.003 回答
2
没有区别。例如考虑以下代码
String x = null;
if(x==null)
{
System.out.println("null");
}
if(null==x)
{
System.out.println("no diff");
}
输出
null
no diff
这意味着没有区别
于 2013-09-23T10:06:47.203 回答
2
于 2013-09-23T10:20:47.747 回答
0
不,没有。var
当is时,这两个陈述都是正确的null
。
于 2013-09-23T10:05:45.200 回答