我有一个Moose类,其属性为ArrayRef(只读),并由对象在内部进行操作。但是当有人调用访问器方法时,我希望它返回一个数组(或列表)而不是引用。这不仅会减少类用户必须取消引用的次数,而且还意味着他们不会意外篡改与我的对象使用的相同的引用。

那么什么是最好的方法呢?某种强制?

最佳答案

使用Moose::Meta::Attribute::Native::Trait::Array和委派,例如

handles => { my_array => 'elements' }

(通过#moose上的doy)

如果您在标量上下文中调用访问器,auto_deref具有不受欢迎的行为,即仍然返回引用。

关于perl - 作为数组返回的Moose ArrayRef属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1861792/

10-10 22:50