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)
为什么会出现此错误?
答案 0 :(得分:2)
正如错误所说:变量@stack
未定义(或nil
)。
你的意思是@stack_of_cards << ..
吗?
答案 1 :(得分:2)
如果你(ruby -W2 script_name.rb
)上有警告,你会收到警告:@stack
不仅仅是零,而是未定义。有关如何调试的更多提示,请参阅How do I debug Ruby scripts?。