哈希和价值观

Sim*_*ity 1 ruby regex

我遇到了这个Ruby脚本:

frequency = Hash.new(0)
...
...
file.read.downcase.scan(/\b[a-z]{4,20}\b/){|word| frequency[word] =
frequency[word]+1}
Run Code Online (Sandbox Code Playgroud)

我无法理解的一点是 frequency[word] = frequency[word]+1

不会frequency[word]给我这个词匹配吗?我们怎样才能添加它1

Ale*_*hov 6

frequency被定义为具有0默认值的哈希.因此,当它返回0之前未被记录时frequency[word]被调用word.

代码似乎计算了文本中的不同单词.

当它完成时,frequency将包含单词作为键和特定单词在句子中作为值出现的次数.

你可以在这里玩它:http://rubyfiddle.com/riddles/519da