“a && not b”给出语法错误?
这样做:
if @array.include?('cat') && ! @array.include?('dog')
!
和not
大多做同样的事情,但不能完全互换使用。
对于好奇:ruby语法分析器中实际存在一些怪癖,使得它无法解释像这样的表达式,尽管它们在理论上可以解析和合理。
这些可以被解析:
not true && true
true && not(true)
但这些不能:
true && not true
true && not (true)
注意,最后一个只在额外的空间是不同的(
之前!
两者之间的唯一区别就是优先。 – 2012-04-10 00:56:52
实际上ruby的解析器中存在一些怪异的表情,就像给出的表情一样。 – 2012-04-10 00:58:00
1.8.7也不能解析'true && not(true)'。如果您在第二学期放置括号,则可以解析后两项。 '真&&(不正确)'。我猜'&&'的优先级太强了,它会使解析器混淆:) – Kelvin 2013-02-04 22:13:57
_not working_以什么方式?你可以给你的程序的所有三行和你预期的输出吗? – sarnold 2012-04-10 00:52:20
对我来说看起来完全有效,请尝试打印数组的内容以查看实际内容。另外,用英语写出你想要的语句是有用的。 I.e:当数组有'猫'并且数组没有'狗'时,我想进入if语句。 – 2012-04-10 00:53:43
你想完成什么?测试将是理想的。 – shime 2012-04-10 00:58:41