我在许多第三方代码片段中看到,在某些情况下,使用null==instance代替instance==null (如if(null== connection) )。
只是好奇,这种方法对条件语句有什么影响,还是人们使用它很酷?
发布于 2014-03-24 12:45:44
我听到引用的最常见的理由是:
null。我强烈反对前者,因为“聪明”在任何代码基中都很容易变得“难以维护”。后者是有效的,尽管我认为体面的测试覆盖可以以更高的附加值完成相同的任务。
就我个人而言,我不喜欢这种风格,因为它对我来说不正确。一般来说,我喜欢用代码“读起来像散文”,这样就容易理解了。并考虑两种散文陈述:
对我来说前者听起来更自然。
发布于 2014-03-24 12:44:11
不,没有什么区别。
这只是一种代码样式,在某些情况下可能会吸引一些人,当null立即显示为条件语句中的第一个值时,这会使它更加显式。
另外,想象一下“实例”可能不仅仅是一个类型的实例,而是一些表达式,比如(()=> { .... })。在这种情况下,您需要先读取一个表达式到末尾,然后看什么是条件,而不是首先看到条件。
发布于 2014-03-24 12:48:27
我认为它来自于C/C++,在这种情况下,您可能会在编译器注意到的情况下意外地分配一个值:
if(variable = 0) { ... }这不会导致错误,并且条件总是为false,并且变量被赋值为0。所以人们开始严格使用另一种形式:
if(0 = variable) { ... } 这会导致错误,因为0不能被赋值。
if(null == variable)的表示法可能足够可读性,但是if(b == a)是怎样的呢?b是常数,是变量。在这种情况下,可读性是一个问题。
https://stackoverflow.com/questions/22609745
复制相似问题