Ruby中是否有适当的语法来比较同一个变量的多个值?例如:
#!/usr/bin/ruby -w
y = 15
p 'success' if y == 1 || y == 5 || y == -2 || y == 15132 || y == 3.14159265 || y == 15
可以写成以下内容:
y = 15
p 'success' if y == 1,5,-2,15132,3.14159265,15
如果是这样,那还适用于while
循环吗?
y = 15
while y != 1,5,-2,15132,3.14159265,15
y = rand(50)
p y
end
根据我的搜索,我倾向于认为这不可能,或者对我的搜索来说太模糊了。
我希望这是第二种情况。
我已经考虑过一个数组itteration解决方案,但它并不像我想的那样漂亮或简单。
答案 0 :(得分:3)
您正在寻找include?
p 'success' if [1,5,-2,15132,3.14159265,15].include? y
答案 1 :(得分:3)
p 'success' if [1, 5, -2, 15132, 3.14159265, 15].include? y
答案 2 :(得分:3)
case y
when 1, 5, -2, 15132, 3.14159265, 15 then p "success"
end
答案 3 :(得分:1)
对于更一般的情况,您可以使用任何?具有比较块的方法;除了==:
之外,这还有可用于操作员的优点p 'success' if [1, 5, -2, 15132, 3.14159265, 15].any? { |i| i == y }
答案 4 :(得分:0)
来自Array#index
:
返回ary中第一个对象的索引,使得对象为== to obj。如果未找到匹配则返回nil。
p 'success' if [1,5,-2,15132,3.14159265,15].index(y)