gpt4 book ai didi

perl - 在 Moose 中,如何在定义多个属性时声明谓词和更清晰的方法?

转载 作者:行者123 更新时间:2023-12-02 06:24:02 25 4
gpt4 key购买 nike

在 Moose 中,您可以一次声明一组属性,假设初始化参数相同:

has [qw( foo bar baz )] => (
is => 'ro',
isa => 'Str',
required => 1,
);

这是一个可爱的功能,可以节省大量的输入。但是,我发现自己对如何使用这种语法定义谓词、更清晰甚至构建器方法感到困惑。

has 'foo' => (
is => 'ro',
isa => 'Str',
required => 1,
clearer => 'clear_foo',
predicate => 'has_foo',
);

我可以使用一个参数来为列表中的所有属性构建标准的 'has_X、'clear_X_build_X 方法吗?

最佳答案

has $_ => (
is => 'ro',
isa => 'Str',
required => 1,
clearer => '_clear_' . $_,
# etc...
) for (qw(foo bar baz);

注意 lazy_build => 1 会自动生成清除器,并且谓词,但它们永远是公开的,这开始让人皱眉在驼鹿社区。 (我认为还没有人写过关于这个的博客,但最近它已成为 IRC#moose 上的一个话题。)

关于perl - 在 Moose 中,如何在定义多个属性时声明谓词和更清晰的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3910955/

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