ruby中的哈希映射自动存储键值对

时间:2014-11-13 10:35:29

标签: ruby data-structures hash

这通常是在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知之甚少,所以我很难理解。

1 个答案:

答案 0 :(得分:0)

如果你看看这一行:

words.each {|word| frequencies [word] +=1}

你可以把这个代码想象成这样(例如,这不是编写它的方式):

i=1
words.each do |word|
  frequencies [word] = i
  i = i +1
end

键是您分配给i的单词及其对应值。如果您想知道,do / end键值与{}相同。当迭代器内的代码跨越多行时,可以使用它。

希望有所帮助