在codeschool的課程中,左上角塊中的代碼被證明是不正確的。爲什麼在這裏需要'self'而不是實例變量?
「當然是這樣」,我對自己說。我知道它應該是@name = name
。什麼是新問題?爲什麼在這裏需要「自我」呢?請看下文中我的工作代碼:
class UserList
attr_accessor :name
def initialize(name)
@name = name
end
end
list = UserList.new('celebrities')
list.name
目前正在閱讀http://stackoverflow.com/questions/1693243/instance-variable-self-vs?rq=1 – dwilbank
只是對下面的答案進行一點說明,這裏的方法'name =()',它是由'attr_accessor'產生的,必須有一個接收方,該方法被應用。 'self.name ='指定接收者爲'self',這裏等於類UserList的一個實例。如果你沒有指定接收者(只是'name ='),Ruby假定接收者是'self',所以這裏是可選的。請注意,在其他情況下,使用'self'不是可選的。 –