В рубиновой кирке написано, что attr_accessor - метод класса
В рубиновом кирке есть строчка
attr_accessor - это метод класса, определенный в классе Module
Но не attr_accessor
метод экземпляра? Я что-то здесь упускаю?
1 ответ
Да, вся документация, которую я могу найти, согласна с тем, что attr_accessor
является методом экземпляра модуля, и я считаю, что для того, что он делает, должен быть экземпляр, а не метод класса.
Я думаю, что это просто опечатка. Авторы, вероятно, просто пытались указать, что вместо того, чтобы быть частью самого языка, attr_accessor
и друзья - это просто методы класса Module, и они случайно сказали "класс", а не "экземпляр".
Обновление: На самом деле, я не могу найти вашу цитату в своей копии (издание 10-й годовщины), хотя она печатная, а не PDF, поэтому я не могу легко найти ее. Ближайшая вещь, которую я могу найти:
Объявления атрибутов класса не являются частью синтаксиса Ruby: они просто методы, определенные в классе
Module
которые создают методы доступа автоматически.
Вполне возможно, что цитируемая вами строка была отредактирована из выпусков позже, чем ваша.
Обновление 2: это официально опечатка. Перечислено как страница 382 в опечатках:
"Attr_accessor - это метод класса, определенный в классе Module и доступный во всех определениях модуля и класса".
Это должен быть метод частного экземпляра - Дейв Томас