Ruby - 了解获胜方法

时间:2016-09-13 07:03:38

标签: ruby

我这里有一个ruby代码,它有两个哈希系列,并且有方法。

spark.files.userClassPathFirst

那里有谁可以解释我这场比赛的胜利?方法呢?它与此类似吗?

VALID_CHOICES = {
  'r' => 'rock',
  'p' => 'paper',
  'sc' => 'scissors',
  'l' => 'lizard',
  'sp' => 'spock'
}

WINNING_COMBO = {
  'r' => ['sc', 'l'],
  'p' => ['r', 'sp'],
  'sc' => ['p', 'l'],
  'l' => ['sp', 'p'],
  'sp' => ['sc', 'r']
}

def win?(first, second)
  WINNING_COMBO[first].include?(second)
end

我希望我可以通过外行的术语或假人能够理解该方法的方式得到解释。对不起我在这里。我真的需要你的想法。非常感谢!希望你明白。

2 个答案:

答案 0 :(得分:1)

第一部分WINNING_COMBO[first]会在WINNING_COMBO中查找其中一个条目。例如,如果first为“r”,那么这将返回数组['sc', 'l']

WINNING_COMBO['r']
#=> ["sc", "l"]

...然后我们检查该数组是否包含second的值,因此对于值“sc”或“l”,这将是真的:

WINNING_COMBO['r'].include?('sc')
#=> true

WINNING_COMBO['r'].include?('l')
#=> true

这相当于较长的win?方法,所有获胜组合都列为个别条件。

答案 1 :(得分:-1)

WINNING_COMBO[first]

这将获得获胜组合的第一个参数

include?(second)

获取获胜组合的第二个参数。