if(boolean == false)vs.​​if(!boolean)

ate*_*iob 36 java boolean-logic boolean boolean-expression

可能重复:
明确地与布尔常量进行比较是不是很糟糕,例如在Java中是否(b == false)?

这个NotePadProvider示例代码中,我注意到作者选择了以下表单:

    if (values.containsKey(NoteColumns.CREATED_DATE) == false) {
        values.put(NoteColumns.CREATED_DATE, now);
    }
Run Code Online (Sandbox Code Playgroud)

过度:

    if (!values.containsKey(NoteColumns.CREATED_DATE)) {
        values.put(NoteColumns.CREATED_DATE, now);
    }
Run Code Online (Sandbox Code Playgroud)

第一种形式在更合乎逻辑的形式上是否有任何优势?

Ry-*_*Ry- 56

除了"可读性",没有.它们在功能上是等同的.

("可读性"在引号中,因为我讨厌== false并发现!更具可读性.但其他人则不然.)


Woo*_*Moo 6

这是一种风格选择.它至少不会影响代码的性能,只会让读者更加冗长.


dev*_*ang 6

主要是可读性.在阅读其他代码时,更直观地将其视为NOT CONTAINS KEY, !values.containsKey(NoteColumns.CREATED_DATE)而不是读取CONTAINS KEY IS FALSE (values.containsKey(NoteColumns.CREATED_DATE) == false).


Kum*_*tra 5

-这里更多的coding style是关于功能而不是功能......

-一个选项非常清楚,但第二个选项非常优雅......没有冒犯,这只是我的观点..