当我尝试运行此代码时:
class Message
@@messages_sent = 0
def initialize(from, to)
@from = from
@to = to
@@messages_sent += 1
end
end
my_message = Message.new(chicago, tokyo)
我得到一个错误,告诉我我的一个参数是未定义的局部变量我只是试图使用
Message
创建一个实例,并很好奇为什么这不起作用。我以为这会起作用,因为我打电话给全班。 最佳答案
问题
使用当前代码,会出现以下错误:
undefined local variable or method `chicago' for main:Object (NameError)
因为实例化
Message
类的方式:my_message = Message.new(chicago, tokyo)
chicago
和tokyo
被解释为实际上没有定义或声明的变量或方法,这就是为什么会出现此错误。解决方案
我想,您只是想传递两个字符串对象(将
chicago
和tokyo
放在引号中)作为Message.new
调用的参数,如下所示:my_message = Message.new('chicago', 'tokyo')
这会解决你的问题。
希望这能清楚地说明你为什么会犯错误以及如何解决问题。