Я создаю программу на Ruby, которая будет использовать "Hello World!" как стандартная строка, если строка не указана, я могу заставить ее зарегистрировать «привет мир» или любую строку, которую я передаю через IRB, но как только я добираюсь до метода вычисления, я получаю ошибки метода и не знаю, где это идет не так.
def display
calculateFrequencies
end
private
def calculateFrequencies
@text = "Hello World!"
@letters = text.downcase.each_char.with_object(Hash.new(0)) do |c, letters|
next if c == " "
@letters[c] += 1
end
end
ожидаемый результат будет, например, он вычисляет частоту, а затем, когда вызывается отображение метода, тогда частота будет отображаться в терминале, например, Hello World = h=1 e=2 l=3 o=2 d=1
но то, что я на самом деле получаю, это.
h.calculateFrequencies
NoMethodError: undefined method `[]' for nil:NilClass
from LetterHistogram.rb:17:in `block in calculateFrequencies'
from LetterHistogram.rb:15:in `each_char'
from LetterHistogram.rb:15:in `with_object'
from LetterHistogram.rb:15:in `calculateFrequencies'
from (irb):5
from /usr/bin/irb:11:in `<main>'