ruby - 试图理解为什么它不能 "convert string to integer"(Ruby 直方图迭代哈希)

标签 ruby arrays hash

在过去 45 分钟左右的时间里,我一直在进行这个 Codeacademy 练习。问答论坛提出的解决方案均无效。代码如下。

puts "Type something profound please"
text = gets.chomp
words = text.split

frequencies = Hash.new 0
frequencies = frequencies.sort_by {|x,y| y}
words.each {|word| frequencies[word] += 1}
frequencies = frequencies.sort_by{|x,y| y}.reverse
puts word +" " + frequencies.to_s
frequencies.each do |word, frequencies|   

end

为什么不能将字符串转换为整数?我做错了什么?

最佳答案

sort_by { |obj| block } → array 很清楚。

frequencies.sort_by {|x,y| y}给你一个数组。 frequencies是一个数组,而不是哈希。因此在 words.each {|word| frequencies[word] += 1} , frequencies[word] 引发异常,如 frequencies是一个数组,数组的元素是通过整数索引访问的,但您尝试使用 string wordwords = text.split ,所以words保存字符串数组。

关于ruby - 试图理解为什么它不能 "convert string to integer"(Ruby 直方图迭代哈希),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21863662/

相关文章:

ruby - Selenium > 网络驱动器 : how to find a nested element by xpath (ruby)

PHP 数组,数组索引区分大小写吗?

javascript - 如何在 PostMan 的预请求脚本中计算 md5 哈希值?

Ruby:根据所需的键将一个散列分成两个

ruby - 使用正则表达式的 `String#split` 方法的不同返回值

ruby - 安装可移植 ruby​​ 和可移植 xampp 以便在我的 Windows 机器 : Is that possible? 中使用 compass 和 sass

arrays - 无法打印数组 slice

JavaScript 通过给定图像制作笑脸动画

perl - 如何获得 Perl 哈希中的二级 key ?

ruby-on-rails - 如何在 Rails 模型中添加日期属性