gpt4 book ai didi

perl - 在 Perl/Moose 中,如何将修饰符应用于所有子类中的方法?

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

我有一个旨在被子类化的 Moose 类,每个子类都必须实现一个“执行”方法。但是,我想在我的类中为 execute 方法添加一个 apply 方法修饰符,以便它适用于所有子类中的 execute 方法。但是当方法被覆盖时,方法修饰符不会被保留。有没有办法确保我的类的所有子类都将我的方法修饰符应用于它们的执行方法?

示例:在父类(super class)中,我有这个:

before execute => sub {
print "Before modifier is executing.\n"
}

然后,在它的一个子类中:
sub execute {
print "Execute method is running.\n"
}

当调用 execute 方法时,它没有说明“before”修饰符的任何内容。

最佳答案

这是什么augment方法修饰符是为。你可以把它放在你的父类(super class)中:

sub execute {
print "This runs before the subclass code";
inner();
print "This runs after the subclass code";
}

然后而不是让您的子类覆盖 execute直接,你有他们 augment它:
augment 'execute' => sub {
print "This is the subclass method";
};

基本上它给你的功能就像 around修饰符,除非父/子关系发生变化。

关于perl - 在 Perl/Moose 中,如何将修饰符应用于所有子类中的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4965197/

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