| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Ruby: Общие вопросы > Свой аналог attr_accessor |
| Автор: CPlusPlusFAN 20.7.2010, 23:13 | ||
| Здравствуйте. Скажите, можно ли написать свой аналог attr, attr_accessor? Ну например для массива:
Если так можно, то можно привести пример? Интересует не обязательно массив, а просто такой вид генерации методов. |
| Автор: CPlusPlusFAN 21.7.2010, 01:40 | ||||
У меня появились 2 варианта:
и ещё один:
если честно, у меня идеи появились только что, после прочтения литературы по метапрограммированию. Может у кого есть варианты красивее? |
| Автор: fell 21.7.2010, 12:15 |
| не очень понятно, что он должен делать ? опишите подробно ... а написать то можно все что угодно, attr_accessor это просто классовые макросы, которые конструируют 2 метода set и get. |
| Автор: CPlusPlusFAN 22.7.2010, 21:46 |
| Ну, к примеру, передаёшь ему символы имени массива и индекса и он генерит метод доступа к элементу внутреннего массива. |
| Автор: fell 23.7.2010, 10:19 |
| для массивов есть очень много всяких функций, в версии 1.9.2 вроде еще добавили. Вы посмотрите, может это уже есть в класса Array, в справочнике гляньте список функций. А функция(макрос) attribute accessor, как следует из названия назначает(управляет) атрибуты класса. Если вам нужна обработка массивов это класс Array. Открываете класс и дописываете нужный вам функционал. Только открываете не исходники |
| Автор: source777 23.7.2010, 14:59 | ||||
Самый красивый вариант в данном случае не умножать сущности сверх меры, а attrByIndex - это вообще хз что, читабельность в десятки раз хуже, чем у оригинального кода, да ещё и конвенция по именованию нарушены. И нафига этому "макросу" передаётся имя параметра метода? Прям можно подумать, что ты - VBFAN... В Ruby нет разницы между
и
|