2015-09-18 2 views
-3

Ниже хэш:Почему я продолжаю получать синтаксическую ошибку с моим хэшем?

hash = { 
    :home => {:team_name => "Brooklyn Nets", :colors => ['black','white'], 
     :players => { 
     { player_name: "Alan Anderson", 
     number: '0', 
     shoe: '16', 
     points: 22, 
     rebounds: 12, 
     assists: 12 , 
     steals:3 , 
     blocks:1, 
     slam_dunks:1 } 
     } 
    }, 
    :away => [:team_name, :colors, :players] 
    } 

Может кто-нибудь сказать мне, почему я получаю эту ошибку?

syntax error, unexpected '\n', expecting => 

Он говорит, что это происходит на slam_dunks линии.

+1

Существует одна дополнительная пара '{}' по значению ключа ': players', удаляем их. –

+1

Рассмотрите возможность использования значения 'key: value' или': key =>. Смешивание обоих визуально запутывает. Я бы порекомендовал первое, если вы не обеспокоены обратной совместимостью с Ruby <1.9. – Schwern

+0

Я думаю, вы должны использовать лучшую IDE, такую ​​как рубин. – illusionist

ответ

1
hash = { 
    home => {:team_name => "Brooklyn Nets", :colors => ['black','white'], 
       :players => { 
        player_name: "Alan Anderson", 
        number: '0', 
        shoe: '16', 
        points: 22, 
        rebounds: 12, 
        assists: 12 , 
        steals:3 , 
        blocks:1, 
        slam_dunks:1 
       } 
    }, 
    :away => [:team_name, :colors, :players] 
} 

Удалены лишние скобки внутри игроков ключа и что он был причиной ошибки.

+0

Это не отвечает на вопрос. – sawa

+0

Это работает, однако причина, по которой у меня было это, состоит в том, что в игре будет много игроков: хэш игроков. когда я задал: players => массив хэшей, которые работали. То, что я пытаюсь сделать выше, это не разрешено в рубине? Я планировал, что хэш хэнд-игроков заполняется большим количеством хэшей, содержащих 5 разных игроков и их статистику. Спасибо –

+0

Я не думаю, что {} означает, что хэш и хэш должны иметь ключ. – Zahid

Смежные вопросы