否定平等与不平等

Bil*_*l B 4 coding-style

最近,我一直在阅读一些代码

 if (! (a == b) ) 
Run Code Online (Sandbox Code Playgroud)

代替

 if ( a != b )
Run Code Online (Sandbox Code Playgroud)

在某些地方.

显然这些在逻辑上是等价的,但我想知道是否有任何特别的理由使用一个而不是另一个.

在某些情况下,哪一种更可取,还是仅仅是个人风格的问题?

Seb*_*Seb 12

我更喜欢

if ( a != b )
Run Code Online (Sandbox Code Playgroud)

只是因为你应该阅读更少,你更快地理解程序员想传递的信息.

记住程序员花在阅读代码上的时间比编写代码要多,所以你能做的越多越好,代码越容易理解.


Joh*_*ing 9

大多数情况下这是一个风格问题(我的偏好是'a!= b'),但如果a是一个没有运算符==或者一个类的对象,那么操作中可能存在实际差异.运算符!=.


Bil*_*ard 6

我会避免的

if (! (a == b) )
Run Code Online (Sandbox Code Playgroud)

因为它涉及两个操作,其中有一个操作员

if ( a != b )
Run Code Online (Sandbox Code Playgroud)

这完全相同的事情.第二个也更具可读性(如果只是略微).

我遇到的真正重大问题

if (! (a == b) )
Run Code Online (Sandbox Code Playgroud)

是什么让我停下来思考"到底是什么?" 好的代码不应该这样做.