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