在我的Ruby脚本中获取错误
我假设这会创建一个新数组,对吗? 但是为什么要使用AT符号呢?我应该什么时候使用它,什么时候不使用它在我的Ruby脚本中获取错误,ruby,Ruby,我假设这会创建一个新数组,对吗? 但是为什么要使用AT符号呢?我应该什么时候使用它,什么时候不使用它 class Card attr_accessor :number, :suit def initialize(number, suit) @number = number @suit = suit end def to_s "#{@number} of #{@suit}" end end @stack\u of_cards=[] @stack
class Card
attr_accessor :number, :suit
def initialize(number, suit)
@number = number
@suit = suit
end
def to_s
"#{@number} of #{@suit}"
end
end
@stack\u of_cards=[]
@stack BlackjackGame.rb:17:未定义的方法`与错误中所说的完全一样:未定义变量@stack
(或nil
)。
你的意思是说@stack\u of_cards与它在错误中所说的完全一样:变量@stack
未定义(或nil
)。
你的意思是说如果你在(ruby-W2 script\u name.rb
)上有警告,你会得到一个警告,@stack
不仅是零,而且是未定义的。有关如何调试的更多提示,请参阅。如果在(ruby-W2 script\u name.rb
)上有警告,则会得到一个警告,@stack
不仅为零,而且未定义。有关如何调试的更多提示,请参阅。是的,这就是错误所在。请注意,何时需要使用AT符号?因为我删除了AT符号,脚本仍然运行良好。谢谢。@Sergio它用于声明全局变量(尤其是在Rails中)。在一个简单的脚本中,几乎没有理由使用它,@符号不声明全局变量。它引用了一个实例变量。@Sergio对不起,我很笨,用@
表示对象的实例变量:)和@
-类的实例变量(很像java中的静态
)是的,这就是错误。请注意,何时需要使用AT符号?因为我删除了AT符号,脚本仍然运行良好。谢谢。@Sergio它用于声明全局变量(尤其是在Rails中)。在一个简单的脚本中,几乎没有理由使用它,@符号不声明全局变量。它引用了一个实例变量。@Sergio对不起,我很笨,用@
表示对象的实例变量:)和@
-类的实例变量(很像java中的静态
)
@stack_of_cards = []
@stack << Card.new("A", "Spades")
puts @stack
# => BlackjackGame.rb:17: undefined method `<<' for nil:NilClass (NoMethodError)