Я пытаюсь объявить новый хеш в ruby с двумя ключами и массивами как значения для соответствующих ключей.
Проблема, которую я не понимаю, заключается в том, что когда я запускаю его в командной строке pry, т.е. он не выдает синтаксической ошибки по сравнению с тем, когда я запускаю файл .rb
. Мои коды ниже.
[1] pry(main)> newhash = {
[1] pry(main)* N: ["unsq", "34n","28"],
[1] pry(main)* L: ["aston", "timesq", "place"]
[1] pry(main)* }
=> {:N=>["unsq", "34n", "28"], :L=>["aston", "timesq", "place"]}
[2] pry(main)> newhash[:N]
=> ["unsq", "34n", "28"]
[3] pry(main)> newhash[:N][1] #returns the correct values
=> "34n" #returns the correct values
Когда я объявляю новый хеш в файле .rb
, используя тот же синтаксис, он возвращает ошибку,
mtahash = {
N : ["timesq", "34thn", "28thn", "23rdn", "Union_Square", "8th"],
L : ["8th", "6th", "Union_Square", "3rd", "1st"],
}
puts mtahash[:N]
puts mtahash[:N][4]
Ошибка запуска и выброса как,
MTA.rb:2: syntax error, unexpected ':', expecting =>
N : ["Times_Square", "34thn", "2...
^
MTA.rb:2: syntax error, unexpected ',', expecting end-of-input
...23rdn", "Union_Square", "8th"],
... ^
Farwas-MBP:day2 farwaabid$ ruby MTA.rb
MTA.rb:2: syntax error, unexpected ':', expecting =>
N : ["timesq", "34thn", "28thn",...
^
MTA.rb:2: syntax error, unexpected ',', expecting end-of-input
...23rdn", "Union_Square", "8th"],
... ^