를 다음 코드 나 문제를 일으키는 : Foo.new.inc
이 NoMethodError: undefined method '+' for nil:NilClass
이 Foo.new.n
반환 0
루비의 증가는 (+ =) 전무에 대한 오류 정의되지 않은 메서드를 '+'제기 NilClass
이유는 무엇입니까 호출 제기 호출
class Foo
def initialize(n=0)
@n = n
end
attr_accessor :n
def inc
n+=1
end
end
을 Foo.new.inc
오류를 제기 하시겠습니까? 나는 문제없이 Foo.new.n+=1
을 할 수있다.
그래서'@ n'을 사용 하시겠습니까? 아니면'자기. – Ryan
'n + = x'는'n = n + x'로 확장됩니다. 여기서 * n은 왼쪽에 나타나므로 * n은 로컬 변수 *로 바인딩됩니다. – user2864740