Получение ошибки в моем Ruby-скрипте - PullRequest
0 голосов
/ 21 февраля 2011
class Card

  attr_accessor :number, :suit

  def initialize(number, suit)
    @number = number
    @suit = suit
  end

  def to_s
    "#{@number} of #{@suit}"
  end
end

Я предполагаю, что это создает новый массив правильно?Но почему используется символ AT?Когда я должен использовать его, а не использовать?

@stack_of_cards = []

@stack << Card.new("A", "Spades")

puts @stack

# => BlackjackGame.rb:17: undefined method `<<' for nil:NilClass (NoMethodError)

Есть идеи, почему эта ошибка срабатывает?

Ответы [ 2 ]

2 голосов
/ 21 февраля 2011

Если бы у вас были предупреждения (ruby -W2 script_name.rb), вы бы получили предупреждение, что @stack не просто ноль, а неопределенный. См. Как отлаживать сценарии Ruby? для получения дополнительных советов по отладке.

2 голосов
/ 21 февраля 2011

Точно так, как говорится в ошибке: переменная @stack не определена (или nil).
Вы имели в виду @stack_of_cards << .. вместо?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...