我仍然试图找出每个之间的差异,并在阅读文档后选择.
有人可以向我解释为什么每个和select都可以在下面的代码中替换?我不明白为什么选择使用然后代码编写器将它放在一个数组?另外,了解他们之间差异的好方法是什么.
def word_unscrambler(str, words)
str_letters = str.split("").sort
anagrams = []
words.select do |word|
word_letters = word.split("").sort
anagrams << word if str_letters == word_letters
end
anagrams
end
Run Code Online (Sandbox Code Playgroud)
虽然它以相同的方式迭代each,但目的select是基于选择标准返回集合.在该特定的代码片段中,它根据anagrams << word if str_letters == word_letters每个的真值返回一个集合,word然后丢弃该集合.
或者,它可以这样做:
def word_unscrambler(str, words)
str_letters = str.split("").sort
words.select { |word| str_letters == word.split("").sort }
end
Run Code Online (Sandbox Code Playgroud)
正如已经说过的,代码的作者显然不明白它是如何select工作的.
| 归档时间: |
|
| 查看次数: |
337 次 |
| 最近记录: |