Синтаксис хэша в Ruby
Согласно The Well Grounded Rubyist:
Ruby разрешает специальную форму представления символа в позиции хеш-ключа с двоеточием после символа вместо него, а стрелка-разделитель хэшей удаляется. Другими словами, это:
hash = { :name => "David", :age => 49 }
также можно записать следующим образом:
hash = { name: David, age: 49 }
Я пробовал предыдущий код в ruby 1.8.7 и 1.9.2 - он не работает. Что я делаю неправильно?
Ответы
Ответ 1
Новый синтаксис хэша в Ruby 1.9 по-прежнему требует, чтобы строки цитировались, поэтому вместо David
вам нужно "David"
.
Попробуйте следующее:
hash = { name: "David", age: 49 }
Если книга использовала голые слова David
без кавычек, это неправильно. Возможно, вам будет интересно прочитать некоторые из другие ошибки.