-3
我是Ruby新手,尝试做一些测试代码。如何定义与变量名同名的方法?
以下是我的代码,
class Test
name = "my name"
def name
if self.name.nil?
self.name = "new name"
end
end
end
puts Test.new.name
当我运行ruby Test.rb
它给了我堆栈层太深错误
Test.rb:4: stack level too deep (SystemStackError)
在这里,我知道self.name会一次次给同样的方法。 ..但我怎么能达到这种类型的要求。
谢谢。
局部变量具有局部范围。变量'name'是一个局部变量,因此在'name'方法中不可见。改用实例变量。 – Stefan