Ruby 程序如何识别频率和作为变量名的频率之间的差异?

Ruby 程序如何识别频率和作为变量名的频率之间的差异?,ruby,variables,Ruby,Variables,从新手的角度来看,这确实值得回答,但前提是我们从Ruby和Rails的角度来看。在Ruby中,frequency和frequency是两个完全不同的变量,这一事实可能会让新手感到困惑。但是在Rails中,一个新来者被教导说Rails在许多情况下会自动实现复数化和单数化。我们创建一个表 puts "Get Text: " text = gets.chomp words = text.split frequencies = Hash.new{0} words.each{|word| frequ

从新手的角度来看,这确实值得回答,但前提是我们从Ruby和Rails的角度来看。在Ruby中,
frequency
frequency
是两个完全不同的变量,这一事实可能会让新手感到困惑。但是在Rails中,一个新来者被教导说Rails在许多情况下会自动实现复数化和单数化。我们创建一个表

puts "Get Text: "
text = gets.chomp

words = text.split

frequencies = Hash.new{0}

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

frequencies = frequencies.sort_by {|a,b| b}
frequencies.reverse!

frequencies.each do |word,frequency| 
    puts word + " " + **frequency**.to_s
end

Rails中的多元化是一个很好的特性,它会让一个对Ruby也不熟悉的新用户感到困惑。同样可以这样说,我知道一开始我很困惑。

您可能希望缩进代码4的空格,以便将其格式化为代码。您还需要单独声明频率变量。我不确定该值是多少。它们有不同的名称:/噢,天哪,我之前没有注意到初始化的频率变量。很抱歉。我觉得很尴尬。不过谢谢你。正如@Paul.s所说,这是一个不同的名字。用
foo
替换
frequencies
,用
bar
替换
frequency
。这只是一个变量名,因为变量的名称不同,它们是不同的变量。
class Frequency < ActiveRecord::Base
belongs_to :radio

end

class Radio < ActiveRecord::Base
has_many :frequencies

end
$> r = Radio.first
$> r.frequencies

    Frequency Load (1.8ms)  SELECT "frequencies".* FROM "frequencies" WHERE  
"frequencies"."radio_id" = 1