有人可以解释`不“`在ruby?
我记得在某个地方读书not和! 被评估不同,我不能在ruby文档中find它。 这是真的? 他们是同义词吗?
好的答案应该引用文件。
他们几乎是同义词,但不完全。 不同之处在于! 具有更高的优先级,非常像&&和|| 比and和or更高的优先级。
! 具有所有运算符的最高优先级,而not最低的优先级,您可以在Ruby文档中find完整的表 。
举个例子,考虑一下:
!true && false => false not true && false => true
在第一个例子中! 具有最高优先级,所以你有效地说false && false 。
在第二个例子中, not比true && false的更低的优先级,所以这个“ true && false ”开关“ true 。
一般的指导方针似乎是你应该坚持! ,除非你有特定的理由不使用。 ! 在Ruby中与大多数其他语言的行为相同,并且“不那么令人惊讶”。