有人可以解释`不“`在ruby?

我记得在某个地方读书not! 被评估不同,我不能在ruby文档中find它。 这是真的? 他们是同义词吗?

好的答案应该引用文件。

他们几乎是同义词,但不完全。 不同之处在于! 具有更高的优先级,非常像&&||andor更高的优先级。

! 具有所有运算符的最高优先级,而not最低的优先级,您可以在Ruby文档中find完整的表 。

举个例子,考虑一下:

 !true && false => false not true && false => true 

在第一个例子中! 具有最高优先级,所以你有效地说false && false
在第二个例子中, nottrue && false的更低的优先级,所以这个“ true && false ”开关“ true

一般的指导方针似乎是你应该坚持! ,除非你有特定的理由不使用。 ! 在Ruby中与大多数其他语言的行为相同,并且“不那么令人惊讶”。