Kit*_* Ho 1 c++ java coding-style
我发现一些程序员想在比较器运算符中这样编码.我发现阅读起来比较困难......
if (0 == foo()){
....
}
Run Code Online (Sandbox Code Playgroud)
foo() == 0在可读性方面有什么不同吗?使用0 == foo()有什么好处?
在这种情况下没有区别,但在比较字符串时,最好首先使用字符串常量来避免空指针异常.
即
if ("somestring".equals(someVarString)) {
// doSomething
}
Run Code Online (Sandbox Code Playgroud)
所以someVarString可以为null,测试仍然有效.如果你将测试翻到:
if (someVarString.equals("somestring")) {
// doSomething
}
Run Code Online (Sandbox Code Playgroud)
如果someVarString为null,它将导致NPE.
不,我认为这样做的最好理由是:
0 == foo
Run Code Online (Sandbox Code Playgroud)
是为了确保您不会忘记=能够做到的一个
if (0 = foo)
Run Code Online (Sandbox Code Playgroud)
通常会引发编译器错误,而不是
if (foo = 0)
Run Code Online (Sandbox Code Playgroud)
这会导致难以发现的错误。
| 归档时间: |
|
| 查看次数: |
751 次 |
| 最近记录: |