myHash = Hash.new
for i in 1..18
myhash[i] = "free"
Ну, просто запустите его. Это приводит к ошибке: syntax error, unexpected end-of-input, expecting keyword_end
. Ах да, отсутствует end
. Давайте добавим отступ, чтобы мы могли видеть, что внутри цикла, а что нет.
myHash = Hash.new
for i in 1..18
myhash[i] = "free"
end
Другая ошибка: in 'block in <main>': undefined local variable or method 'myhash' for main:Object (NameError)
. Рубин говорит, что не знает myhash
. Глупый рубин. myhash
- это хэш, мы сказали так на первой строке. О, подождите ... мы назвали его myHash
, а не myhash
.
myHash = Hash.new
for i in 1..18
myHash[i] = "free"
end
Запустить его: никаких ошибок, никакого вывода вообще. Добавьте одну строку для проверки myHash
:
myHash = Hash.new
for i in 1..18
myHash[i] = "free"
end
p myHash
И там, myHash: {1=>"free", 2=>"free", 3=>"free", 4=>"free", 5=>"free", 6=>"free", 7=>"free", 8=>"free", 9=>"free", 10=>"free", 11=>"free", 12=>"free", 13=>"free", 14=>"free", 15=>"free", 16=>"free", 17=>"free", 18=>"free"}
. более
Что произошло, когда вы пытались запустить выше код? – mcfinnigan
Также имейте в виду, что в Ruby вы можете установить значения по умолчанию для хэша, используя 'myHash = Hash.new ('free') ''. Возможно, это не то, что вам нужно в этом случае, но это хорошо знать. – hirolau
@SCraig Если ваши ключи целые, почему вы хотели бы использовать хэш в первую очередь вместо массива? – bogl