(X!= Y)和(!(X == Y))之间的差异?

Gil*_*and 1 optimization objective-c

标题非常简单,我只是想知道在说明之间是否存在差异(任何类型,表现或任何想到的东西):

if (!(x == y)) {

}
Run Code Online (Sandbox Code Playgroud)

if (x != y) {

}
Run Code Online (Sandbox Code Playgroud)

此外,x和y是原语或简单对象,如int,String,double等.不是自定义对象.但如果它有很大的不同,我会很高兴听到它!

考虑到他们都检查平等,但后来使用"对立面",我不确定它是否不同.

尽管这种差异非常小,但它引起了我的好奇心!

编辑:

我之所以这么想(所以你看到我的意思)是在输入这个时:

if (!(myTextField.length == 5))
Run Code Online (Sandbox Code Playgroud)

代替

if (mytextfield.length != 5)
Run Code Online (Sandbox Code Playgroud)

所以你看到我的意思.字符串长度.

aio*_*obe 5

!(x == y)并且x != y在逻辑上是等价的,我怀疑任何编译或解释的语言都会在内部对它们进行不同的评估.换句话说,如果你发现了可衡量的差异,我会感到惊讶.

某些语言(如C++和Scala)允许您覆盖这些运算符,在这种情况下,它当然是一个不同的故事.