红宝石镐头书上说attr_accessor是类方法(ruby pickaxe book says a

2019-10-17 01:55发布

在红宝石镐头书,有这样一行

attr_accessor是在类模块中定义的类的方法

不过,这不attr_accessor实例方法? 我失去了一些东西在这里?

Answer 1:

是的,所有的文件我能找到同意attr_accessor是模块的实例方法,我相信它会是一个实例,而不是类的方法做它。

我的猜测是,它只是一个错字。 作者很可能只是想指出的是,而不是语言本身,一部分attr_accessor和朋友都只是模块类的方法,他们意外地说:“下课”,而不是“实例”。

更新:其实,我找不到我的副本(10周年纪念版)的报价,虽然它的打印,而不是PDF,所以我不能轻易地搜索。 我能找到最接近的是:

类属性的声明不红宝石语法的一部分:它们仅仅是在类中定义的方法Module ,可自动创建存取方法。

这很可能是你报的线路被比你后来编辑了版本。

更新2:这是一个正式的错字。 列为382页的勘误表 :

“attr_accessor是在类模块中定义的类方法,因此是在所有模块和类定义可用”。

这应该是一个私有的实例方法 - 戴夫·托马斯



文章来源: ruby pickaxe book says attr_accessor is class method