Получения доступа к хэшу

inventory = {
     soccer_ball: {qty: 2},
     tennis_ball: {qty: 3}
}

puts inventory[soccer_ball]

Не работает доступ по хэшу, в чём причина?


Ответы (1 шт):

Автор решения: Василиса

Когда задаёте вопрос, указывайте пожалуйста более развёрнуто, что значит "не работает". В данном случае, я полагаю, вы получаете

NameError: undefined local variable or method `soccer_ball' 

Причина в том, что ключами в вашем хэше являются символы (:soccer_ball, например). Вы просто забыли двоеточие при обращении, и soccer_ball было расценено, как название переменной/метода. Вот так всё будет работать:

puts inventory[:soccer_ball]
→ Ссылка