(is => 'rw'); 这似乎不起作用。这不可能吗? 最佳答案 您应该将对象定义为只读,然后提供私有(private-6ren">
gpt4 book ai didi

perl - 覆盖类的 "is"属性(Moose)

转载 作者:行者123 更新时间:2023-12-04 21:34:30 24 4
gpt4 key购买 nike

我正在尝试子类 ro属性使其 rw像这样:

has '+content' => (is => 'rw');

这似乎不起作用。这不可能吗?

最佳答案

您应该将对象定义为只读,然后提供私有(private)写入器

#!/usr/bin/perl
use Modern::Perl;

{
package Foo;
use Moose;

has bar => (
is => 'ro',
writer => '_set_bar',
);

}

my $foo = Foo->new;

那么如果你尝试 $foo->bar('something');你会得到你在评论中提到的错误 Cannot assign a value to a read-only accessor这是你需要的魔法 $foo->_set_bar('something');由于继承,它将彻底运行 Moose 框架。

关于perl - 覆盖类的 "is"属性(Moose),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42078192/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com