SPVM::Cloner − Interface Type for the Callback to Clone a Object
use Cloner;
use Point;
my $cloner = (Cloner)method : object ($object : object) {
my $point = (Point)$object;
my $cloned_point = Point−>new($point−>x,
$point−>y);
return $cloned_point;
};
my $point = Point−>new(1, 2);
my $cloned_point = $cloner−>($point);
Cloner is the interface type for the callback to clone an object.
"required method : object ($object : object);"
The implementation must receive an object and return the cloned object.
"static method default_cloner : Cloner ();"
Returns a default cloner.
The implementation of the default cloner is
method : object
($object : Cloneable) {
my $clone = (object)undef;
if ($object) {
$clone = $object−>clone;
}
return $clone;
};
If the object $object is undef, returns undef, ohterwise calls Cloneable#clone method and its return value.
Copyright (c) 2023 Yuki Kimoto
MIT License