“a&& not b”会出现语法错误?

时间:2012-04-10 00:50:30

标签: ruby

这一行给出了语法错误:

if @array.include?('cat') && not @array.include?('dog')

有什么想法吗?

1 个答案:

答案 0 :(得分:6)

这样做:

if @array.include?('cat') && ! @array.include?('dog')

!not大致相同,但不能互换使用。

对于好奇:在ruby解析器中实际上存在某种怪癖,使得它无法解释像这样的表达式,即使它们在理论上是可解析的和声音。

可以解析这些:

not true && true
true && not(true)

但这些不能:

true && not true
true && not (true)

请注意,最后一个仅在(之前的额外空格中有所不同!