检查项目是否包含在数组或散列中

时间:2013-04-01 14:52:32

标签: ruby

Ruby中是否可能出现类似的内容

if @subscription.state = ['trail', 'active']
   #Do something 
end

应该是自我解释的。

4 个答案:

答案 0 :(得分:7)

也许:

['trail', 'active'].include?(@subscription.state)

答案 1 :(得分:5)

您可以使用ruby include?

Array方法
if ['trail', 'active'].include?(@subscription.state)
  #do something
end

答案 2 :(得分:0)

请尝试Array#include进行检查。

if ['trail', 'active'].include? @subscription.state
    #Do something 
end

我强烈建议阅读pickaxe book,因为这是一个基本的Ruby问题。

答案 3 :(得分:0)

您还可以使用:Enum#any?

@subscription = false
#=> false
[true,false].any? {|x| x == @subscription }
#=> true
@subscription = true
#=> true
[true,false].any? {|x| x == @subscription }
#=> true
@subscription = 15
#=> 15
[true,false].any? {|x| x == @subscription }
#=> false
if [true,false].any? {|x| x == @subscription } then
 p "hi"
else
 p "hello"
end
#"hello"
#=> "hello"