4
я могу объявить attribut с Moose так:Сброс атрибута по умолчанию значение
has 'attr' => (is => 'rw', isa => 'Int', default => 10);
Можно ли сбросить это значение на значение по умолчанию?
Пример:
$obj->attr(5); # sets attr to 5
$obj->_reset_attr;
print $obj->attr; # will print 10
Ничего себе. И я думал, что «default» и «lazy» не могут быть объединены. Это недавнее улучшение «Муса»? – innaM
@innaM нет, он работает еще, насколько я помню. Чаще всего использовать 'lazy' с' builder' (исходя из предположения, что строитель делает что-то дорогое или зависит от других данных), но 'default' - это очень простой строитель :) – hobbs
Btw, clearer также работает если 'attr' = = 'ro. Это полезно, если вы ленивы загружаете значение из базы данных, и знаете, что указанное значение из указанной базы данных изменилось. Просто attr -> _ clear_attr, и в следующий раз, когда «attr» будет доступен, Moose повторно загрузит обновленное значение из базы данных. – yahermann