Позвольте мне предисловие к этому, сказав, что я новичок в Ruby.Ruby и если заявления
Я пытался сделать что-то вроде этого:
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 вы делаете 'if foo in ['a', 'b', 'c']'.Мне было бы интересно узнать, сможет ли Ruby это сделать. – Blender
@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).) –
Я понимаю, что я немного поздно, но я не думаю, что смогу идти в ногу со всеми моими обязанностями. Я пытаюсь работать через это, как только я получаю время – Calihan