這更多的是語義問題。將變量與Ruby中的兩個不同值進行比較
我想檢查一個變量是否是兩個值之一。最簡單的方法是:
if var == "foo" || var == "bar"
# or
if var == 3 || var == 5
但是這對我來說並不是很乾燥。我知道我可以使用String.match()
,但這對於非字符串變量不起作用,速度慢三倍。
有沒有更好的方法檢查變量對兩個值?
這更多的是語義問題。將變量與Ruby中的兩個不同值進行比較
我想檢查一個變量是否是兩個值之一。最簡單的方法是:
if var == "foo" || var == "bar"
# or
if var == 3 || var == 5
但是這對我來說並不是很乾燥。我知道我可以使用String.match()
,但這對於非字符串變量不起作用,速度慢三倍。
有沒有更好的方法檢查變量對兩個值?
將所有值放入數組中,然後它應該很容易。
%w[foo bar].include?('foo') # => true
[3,5].include?(3) # => true
你可以這樣做:
%W(foo bar baz).include? var
或者:
[3, 5].include? var
的case
聲明似乎做你想要什麼。
case var
when "foo", "bar" then case1()
end
case var
when 3, 5 then case2()
end
基於數組的方法似乎可能比這慢。
缺少if語句... if(%w [foo bar] .include?(var)) –
是的,我意識到我幾乎可以在發佈問題時儘快做到這一點。謝謝! – vonconrad