Ruby 多重比较的正确语法是什么?
Ruby中是否有适当的语法用于将多个值与同一个变量进行比较?例如:Ruby 多重比较的正确语法是什么?,ruby,if-statement,while-loop,Ruby,If Statement,While Loop,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 whil
#!/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
基于我的搜索,我倾向于相信这要么是不可能的,要么对我的搜索来说太模糊了
我希望是第二例
我已经考虑过一个数组写入解决方案,但它没有我想要的那么漂亮或简单。您正在寻找的
包含?
p 'success' if [1,5,-2,15132,3.14159265,15].include? y
您正在寻找
include?
p 'success' if [1,5,-2,15132,3.14159265,15].include? y
从:
返回ary中第一个对象的索引,以便该对象==到obj。如果未找到匹配项,则返回nil
从:
返回ary中第一个对象的索引,以便该对象==到obj。如果未找到匹配项,则返回nil
对于更一般的情况,您可以使用any?带有比较块的方法;这有一个优点,除了==,还可以与运算符一起使用:
p 'success' if [1, 5, -2, 15132, 3.14159265, 15].any? { |i| i == y }
对于更一般的情况,您可以使用any?带有比较块的方法;这有一个优点,除了==,还可以与运算符一起使用:
p 'success' if [1, 5, -2, 15132, 3.14159265, 15].any? { |i| i == y }
完全相同的表达式规则适用于
if
和while
。另外,在与浮点数进行比较时要小心——如果任何一个数字都是计算结果,则通常不会产生预期结果。完全相同的表达式规则适用于if
和while
。另外,在与浮点数进行比较时要小心——如果任何一个数字都是计算的结果,通常都不会产生预期的结果。我的那一个怎么样?请检查:)我的怎么样?请核对:)
p 'success' if [1, 5, -2, 15132, 3.14159265, 15].any? { |i| i == y }