Ruby中的整数范围
我是Ruby的新手,在阅读《Ruby指南》时遇到了一个问题: 这个表达式返回真值吗 2005..2009==2007 但是我不知道为什么我从下面的代码中得到这个警告消息Ruby中的整数范围,ruby,Ruby,我是Ruby的新手,在阅读《Ruby指南》时遇到了一个问题: 这个表达式返回真值吗 2005..2009==2007 但是我不知道为什么我从下面的代码中得到这个警告消息 wishTraditional.rb:4: warning: integer literal in conditional range 代码: 而它返回睡眠,这是错误的,应该是Sias 顺便问一下,这两点是什么意思?我怎样才能找到更多关于它的信息呢?我想你最好使用这样的东西: elsif (2005..2009).includ
wishTraditional.rb:4: warning: integer literal in conditional range
代码:
而它返回睡眠,这是错误的,应该是Sias
顺便问一下,这两点是什么意思?我怎样才能找到更多关于它的信息呢?我想你最好使用这样的东西:
elsif (2005..2009).include?(year)
以下是关于
更新:如果坚持使用===,则应将范围括在括号中:
elseif (2005..2009) === year
对于独立表达式,是的,您需要将范围文字放在括号中。 但是您的if/elsif链作为case语句会更清晰,它使用===进行比较:
def makTimeLine(year)
case year
when 1984
"Born."
when 2005..2009
"Sias."
else
"Sleeping"
end
end
谢谢Baramin,我只是自己想出来的,这在我跳过的前一章中有介绍。我不会再跳过这一章了!这是因为运算符优先级:
==
在之前绑定…
。
def makTimeLine(year)
case year
when 1984
"Born."
when 2005..2009
"Sias."
else
"Sleeping"
end
end