Object::Pad review Yuki Kimoto's 2021-08-21 - Constructor default argument
I start to review Paul Evans's Object::Pad from my personal thinking.
Latest years, Perl core teams positively try to implement Object-Oriented feature to Perl core. I hope my review helps a little.
First time is constructor default arguments.
use Object::Pad; class Point { has $x :param = 0; has $y :param = 0; method move { my ($dX, $dY) = @_; $x += $dX; $y += $dY; } method describe { print "A point at ($x, $y)\n"; } } { my $point = Point->new(x => 5, y => 10); $point->describe; }# Unsupported hash reference
# I think a little time
# Benefit: a little fast because type check isn't done
{
my $args = {x => 5, y => 10};
my $point = Point->new($args);
$point->describe;
}
# Need the following. Not too bad.
# I can accept hash reference argument feature is none.
{
my $args = {x => 5, y => 10};
my $point = Point->new(%$args);
$point->describe;
}
Leave a comment