Я пытаюсь создать простой класс Ruby, но я застреваю. Это мой код:Невозможно создать Ruby Hash внутри класса
#!/usr/bin/ruby
class Dock
@ships = Hash.new(false)
def initialize()
end
def store(ship, pier)
@ships[pier] = ship
end
end
yathi = Dock.new
yathi.store("test", 12)
Но когда я пытаюсь запустить, запустив это в терминале:
ruby test.rb
Это сообщение об ошибке я получаю:
test.rb:8:in `'store': undefined method `'[]=' for nil:NilClass (NoMethodError)
from test.rb:13
Это делает работайте, если я переписал это следующим образом:
@ships = {pier => ship}
Но это создает новый хэш каждый раз с одним значением, которое я не хочу. Может кто-нибудь, пожалуйста, скажите мне, что я делаю неправильно?
Это сделал это! Огромное спасибо. И теперь я понимаю, что когда я использовал нотацию {}, она создавала совершенно новый хеш, не зависящий от начальных @ships, которые я определил. – Yathi