下面,我们给出一个名为win_lose的数组.我们应该创建一个看起来像下面的哈希的哈希.我最初的倾向是使用.count做一些事情,但在尝试答案之后,.each_with_object工作得最好.
有人可以根据.each_with_object方法做什么以及答案本身为我分解吗?我得到了答案并从阅读文档中找到了答案,但仍然需要解释方法本身...
谢谢!
win_lose = ["win", "lose", "win", "lose", "win", "win"]
Run Code Online (Sandbox Code Playgroud)
基于win_lose数组创建一个如下所示的哈希:
win_loss_count = {
"win" => 4,
"loss" => 2
}
Run Code Online (Sandbox Code Playgroud)
这是我最初尝试没有成功的原因:
win_loss_count = Hash[win_lose.map.with_index { |outcome, times| outcome = times.count }]
Run Code Online (Sandbox Code Playgroud)
回答:
win_loss_count = win_lose.each_with_object(Hash.new(0)) { |word,counts| counts[word] += 1 }
Run Code Online (Sandbox Code Playgroud) 非常基本,但我无法弄清楚!Noob问题 - 我已经尝试了几个不同的答案,我仍然得到参数错误.有人可以帮助启发我正确的答案吗?
更正此代码,以便greet函数返回预期值.
class Person
def initialize(name)
@name = name
end
def greet(other_name)
"Hi #{other_name}, my name is #{name}"
end
end
Run Code Online (Sandbox Code Playgroud)