好的,这只是我正在处理的一个练习问题的答案,我对正在发生的事情感到困惑。
它基本上是在str
(String
)中获取每个字母的数量而忽略空格。
我认为这个计数从空哈希开始,但它如何将字母作为键呢? counts[char] += 1
我猜是以某种方式将密钥(字母)和值(重复次数)输入哈希值?
def letter_count(str)
counts = Hash.new(0)
str.each_char do |char|
counts[char] += 1 unless char == " "
end
counts
end
答案 0 :(得分:2)
开头,count是一个空哈希值,默认值为0。因此,如果我们尝试获取哈希中当前不存在的键的值,则返回0。
然后字符串中的每个字符都有一个循环。 char被视为哈希的键(但如果char是空格,则不执行任何操作)。我们获得当前存储在散列中的值(如果不存在则为0)并递增它。
因此对于字符串'作为'我们将得到这个答案:
{'a' => 2, 's' => 1}
希望它有所帮助!