讓我先說這個,說我是Ruby的新手。Ruby和if語句
我試圖做這樣的事情:
raise NoSuchStrategyError unless ((player1[1].downcase && player2[1].downcase) == ("p" || "r" || "s"))
然而,由於預期它不工作。它只承認第一個參數是否是「p」。如果它是「r」或「s」,它會拋出錯誤。我不得不寫出來的很長的路要走這樣,它的工作:
raise NoSuchStrategyError unless player1[1].downcase == "p" or player1[1].downcase == "s" or player1[1].downcase == "r"
raise NoSuchStrategyError unless player2[1].downcase == "p" or player2[1].downcase == "s" or player2[1].downcase == "r"
是否有更好的方法來做到這一點速記?
在Python中,如果在['a','b','c']'中做了'if foo'。我很想知道Ruby是否也可以做到這一點。 – Blender 2012-03-06 07:22:07
@Blender事實上,只有通過['Enumerable#include?'](http://ruby-doc.org/core-1.9.3/Enumerable.html#method-i-include-3F): '['a','b','c']。include? foo'。 (儘管嚴格地說['Array'覆蓋'include?'](http://ruby-doc.org/core-1.9.3/Array.html#method-i-include-3F)。) – 2012-03-06 07:37:25
我意識到我是有點晚了,但我認爲我不能跟着我的其他責任跟上全班的速度。我試圖通過它,因爲我得到時間 – Calihan 2012-03-06 07:44:48