-3
Ruby를 처음 사용하고 일부 테스트 코드를 작성하려고합니다. 변수 이름과 같은 이름으로 메서드를 정의하는 방법은 무엇입니까?
다음
는class Test
name = "my name"
def name
if self.name.nil?
self.name = "new name"
end
end
end
puts Test.new.name
내가 그것을 여기
Test.rb:4: stack level too deep (SystemStackError)
내가 self.name가 또 다시 같은 방법을 호출 할 것을 알고 너무 깊이 오류 수준을 쌓아 나에게 제공 ruby Test.rb
을 실행할 때, 내 코드입니다. 그러나 그런 요구 조건을 어떻게 성취 할 수 있을까요?
감사합니다.
로컬 변수에는 로컬 범위가 있습니다. 변수'name'은 지역 변수이므로'name' 메소드에서 보이지 않습니다. 대신 인스턴스 변수를 사용하십시오. – Stefan