我是Ruby的新手,在Ruby的Poignant指南中遇到問題:Ruby中的整數範圍
此表達式是否返回true?
2005..2009 === 2007
但我不知道爲什麼我從下面的代碼
wishTraditional.rb:4: warning: integer literal in conditional range
代碼得到這個警告消息:
def makTimeLine(year)
if 1984 === year
"Born."
elsif 2005..2009 === year
"Sias."
else
"Sleeping"
end
end
puts makTimeLine(2007)
和它返回睡覺,這是錯誤的,應該是Sias
BTW這兩個點是什麼意思?我怎樣才能找到更多關於它的信息?
感謝Baramin,我剛弄明白我自己,這是覆蓋在前面的章節中,我跳過。我不會再跳過章節! – mko 2010-11-17 14:59:17
這是因爲運算符的優先級:'==='在'...'之前綁定。 http://stackoverflow.com/a/14258487/1400991 – 2014-12-23 14:43:48