gpt4 book ai didi

perl - 在 perl 中重载运算符

转载 作者:行者123 更新时间:2023-12-01 11:00:30 24 4
gpt4 key购买 nike

假设我有一个 blessed 引用/对象 $a$b,每个都在内部存储为 hashref 并具有:

$a->{_x}
$b->{_x}

是否可以重载算术运算,所以我什么时候会这样做:

my $c = $a + $b;

我将有一个有福的引用 $c,其中 $c->{_x} 等于 $a->{_x} + $b-> {_x}??

最佳答案

当然。只需将您常用的构造函数用于 + 的重载子中所需类的新对象,并将其值设置为该总和(或您想要的任何其他值)。

假设你有 new 构造函数,它以初始值作为参数,那将是这样的:

sub plus {
my $self = shift;
my $right = (shift or 0);
return MySuperNumberObject->new($self->{_x} + $right);
};

use overload '+' => \+

关于perl - 在 perl 中重载运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11362311/

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