用于"if(范围内的数字)然后......"的Ruby快捷方式

jpw*_*ynn 7 ruby ruby-on-rails

以下是否有Ruby快捷方式?

if (x > 2) and (x < 10)
  do_something_here
end
Run Code Online (Sandbox Code Playgroud)

我以为我看到了那种效果,但无法找到它的参考.当然,当你不知道你正在寻找什么算子时,很难查找.

Pre*_*ids 17

if (3..9).include? x
  # whatever
end
Run Code Online (Sandbox Code Playgroud)

作为旁注,您还可以使用三等于运算符作为范围:

if (3..9) === x
  # whatever
end
Run Code Online (Sandbox Code Playgroud)

这使您可以在case语句中使用它们:

case x
  when 3..9
    # Do something
  when 10..17
    # Do something else
end
Run Code Online (Sandbox Code Playgroud)


Phr*_*ogz 7

do_something if (3..9).include?( x )   # inclusive
do_something if (3...10).include?( x ) # inclusive start, exclusive end
Run Code Online (Sandbox Code Playgroud)

Range课; 你可以阅读我网站上托管的介绍.

  • 注意`Range #include?`.如果范围是非数字,则它会计算范围内的**元素.`("aaaaaa".."zzzzzz").include?("zzzzzz")`在我的系统上已经花了**2分钟**.对于整数,正如问题所述,这不是问题. (2认同)