这通常是在Ruby中创建Hash Map
的方法
colors = {
"red" => 2,
"blue" => 3
}
但是在下面的代码中,指定了Key及其对应的值,就像在“colors”hash中一样。
puts "enter a string"
text = gets.chomp
words=text.split
frequencies = Hash.new(0)
words.each {|word| frequencies [word] +=1}
frequencies = frequencies.sort_by do |wordy, wcounty|
wordy
end
puts frequencies
是在每个循环中还是在它旁边的行中完成“频率”新值被指定为循环,如果是,如何?
我是Ruby
的新手,但我对JAVA
知之甚少,所以我很难理解。
答案 0 :(得分:0)
如果你看看这一行:
words.each {|word| frequencies [word] +=1}
你可以把这个代码想象成这样(例如,这不是编写它的方式):
i=1
words.each do |word|
frequencies [word] = i
i = i +1
end
键是您分配给i的单词及其对应值。如果您想知道,do / end键值与{}相同。当迭代器内的代码跨越多行时,可以使用它。
希望有所帮助