让我先说这个,说我是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