-3
私はRubyを初めて使用していて、いくつかのテストコードを実行しようとしています。続き変数名と同じ名前のメソッドを定義する方法は?
は私がruby Test.rb
を実行したときに、それは私がself.nameが何度も何度も同じメソッドを呼び出すことを知っている私はレベルが深すぎエラーここ
Test.rb:4: stack level too deep (SystemStackError)
を積み重ね与え
class Test
name = "my name"
def name
if self.name.nil?
self.name = "new name"
end
end
end
puts Test.new.name
、私のコードです。しかし、どのようにしてこのようなタイプの要件を達成することができますか?
ありがとうございました。
ローカル変数は、ローカルスコープを持っています。変数 'name'はローカル変数であり、' name'メソッドでは見えません。代わりにインスタンス変数を使用してください。 – Stefan