2009-12-10 3 views

답변

8

아니요, 스타일에 관한 질문 일뿐입니다.

명심해야 할 점은 setter 메서드에 항상 대상을 지정해야한다는 것입니다. 나는 그 자체가 나쁜 관행입니다 말할 것입니다하지만 당신은, 당신의 클래스의 방법으로 같은 이름의 지역 변수가 일어날 경우

foo_count = 4 #creates a local variable named foo_count and sets it to 4 
self.foo_count = 4 #sends foo_count=(4) to self 

동일한 규칙이 적용됩니다.

+0

간결한 설명 주셔서 감사합니다. –

1

Chuck이 앞서 말했듯이, 개인적인 방법을 사용할 때, 그리고 그가 지적한 예외를 제외하고는 대부분 스타일에 관한 문제입니다. 개체 내에서 비공개 방법을 사용할 때마다 self. 업체를 떠나야합니다.

예는 :

class Tze 
    def meth2 
    meth1 
    end 

    def meth3 
    self.meth1 
    end 

    private 
    def meth1 
    puts "method 1 invoked" 
    end 
end 

Tze.new.meth2를 호출 예상 출력을 생성; 그러나 Tze.new.meth3을 호출하면 meth1self.meth1으로 호출되기 때문에 오류가 발생합니다.

+1

세터는이 규칙에서 제외됩니다. 'x ='가 private 메소드 임에도 불구하고'self.x = 5'는 유효합니다. – horseyguy

관련 문제