我已经编写了这段代码来增加实例变量,但它不起作用并说:
未定义的方法`+'代表nil:NilClass(NoMethodError)
class Ali
@var1 = 2
def initialize
end
def getvar1
@var1 = @var1 + 2
return @var1
end
end
ali = Ali.new
puts ali.getvar1()
答案 0 :(得分:2)
将初始值@var1 = 2
放入初始值设定项中。这就是初始化器的用途!
答案 1 :(得分:2)
您可以执行以下操作来实现您的目标
class Ali
def initialize
@var1 = 2
end
def getvar1
@var1 = @var1 + 2
end
end
ali = Ali.new
ali.getvar1
=> 4
ali.getvar1
=> 6
请注意,在ruby中@var
是一个实例变量,只能通过实例访问。 @@var
是一个类变量,可以在类中的任何位置访问。
还有一件事,方法的最后一个陈述是默认的返回值。仅当最后一个语句不是您想要的值作为返回值时才使用显式return
。