not!同义词,还是对它们的评估不同?

答案

它们几乎是同义词,但又不完全是同义词。!优先级高于not, 很像&&||优先级高于andor

!具有所有运算符的最高优先级,并且not最低的之一,你可以找到Ruby 文档中的完整表格

作为一个例子,请考虑:

!true && false
=> false

not true && false
=> true

在第一个例子中,!最高 优先级,所以你实际上是在说false && false
在第二个例子中,not优先级低于true && false,所以这"切换"了falsetrue && falsetrue

一般准则似乎是您应该坚持!,除非您有特定的使用理由not!Ruby 的行为与大多数其他语言相同,并且比not

来自: stackoverflow.com