Ruby 中的新功能,试图弄清楚为什么您会选择一种变体而不是另一种变体。你能写一个例子,其中一个比另一个更受欢迎吗?
class User
attr_accessor :username
def initialize(username)
self.username = username
end
end
class User
attr_accessor :username
def initialize(username)
@username = username
end
end
Run Code Online (Sandbox Code Playgroud)
他们是一样的东西。
self.username =调用username=由 attr_accessor 定义的函数。该函数如下所示:
def username=(value)
@username = value
end
Run Code Online (Sandbox Code Playgroud)
如您所见,它与您提到的“替代方案”相同。
编辑使用访问器(即调用由 attr_accessor/reader/etc 定义的函数)比其他形式的访问快得多。评论中有一些链接,详细说明了这一点。
| 归档时间: |
|
| 查看次数: |
1058 次 |
| 最近记录: |