[英]Ruby - Understanding Winning Method
我這里有一個 ruby 代碼,它有兩個系列的哈希值,並且有方法。
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
任何人都可以向我解釋這場勝利是什么? 方法呢? 它與此相似嗎?
def win?(first, second)
(first == 'sc' && second == 'p') ||
(first == 'p' && second == 'r') ||
(first == 'r' && second == 'l') ||
(first == 'l' && second == 'sp') ||
(first == 'sp' && second == 'sc') ||
(first == 'sc' && second == 'l') ||
(first == 'l' && second == 'p') ||
(first == 'p' && second == 'sp') ||
(first == 'sp' && second == 'r') ||
(first == 'r' && second == 'sc')
end
我希望我能用外行的術語或傻瓜可以理解的方式來解釋該方法。 對不起,這里的假人。 我真的需要你的想法。 非常感謝! 希望你能理解。
第一部分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?
將所有獲勝組合列為個別條件的方法。
WINNING_COMBO[first]
這將獲得獲勝組合的第一個參數
include?(second)
獲取獲勝組合的第二個參數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.