Moose Attributes

Laziness

通过设置lazy选项,Moose可以让你延迟属性值的建立。

has 'size' => (
    is      => 'ro',
    lazy    => 1,
    default => 10,
);

当lazy为真,default不是在对象建立时执行,而是在这个属性被读取时执行。

注意:

  1. 如果这个属性的default值依赖别的属性,这个属性的lazy选项必须为真。当对象创建时,所有defaults的建立是无序的, 因此你不能指望你所依赖的属性的值已经建立。

  2. 你也不必在你使用这个属性的值之前就计算这个属性的值,属性的lazy选项为真可以延迟属性值的计算直到你需要用到它。


Moose

这篇文章: 有用 无用
创建 2012-02-07 11:01:03 / 更新 2013-04-21 20:37:08