2009-12-10 41 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

感謝您的簡要解釋。 – 2009-12-10 21:17:45

1

正如查克先前所說,這主要是一個風格問題,除了他指出的情況以及使用私人方法時。任何時候您從對象中使用私有方法時,都必須離開self.業務。

例如:

class Tze 
    def meth2 
    meth1 
    end 

    def meth3 
    self.meth1 
    end 

    private 
    def meth1 
    puts "method 1 invoked" 
    end 
end 

調用Tze.new.meth2產生預期的輸出;然而,由於meth1被調用爲self.meth1,因此調用Tze.new.meth3會產生錯誤。

+1

雖然安裝人員不受此規定限制。儘管'x ='是一種私有方法,'self.x = 5'仍然有效 – horseyguy 2009-12-11 04:36:40