7
這是一個基本的問題,我擔心。看看下面的代碼。我想知道是否有辦法聲明slices
屬性,以避免get_slices
和add_slice
的樣板文件。如何使用Moose爲數組屬性添加便利功能?
package Gurke;
use Moose;
has slices => is => 'rw', isa => 'ArrayRef[Str]', default => sub { [] };
sub get_slices { return @{ $_[0]->slices } }
sub add_slice {
my($self, $slice) = @_;
push @{ $self->slices }, $slice;
return;
}
no Moose;
__PACKAGE__->meta->make_immutable;
package main; # now a small test for the above package
use strict;
use warnings;
use Test::More;
my $gu = Gurke->new;
$gu->add_slice('eins');
$gu->add_slice('zwei');
$gu->add_slice('drei');
my @sl = $gu->get_slices;
is shift @sl, 'eins';
is shift @sl, 'zwei';
is shift @sl, 'drei';
done_testing;
謝謝!
我試圖想象黃瓜的樣子,你可以把東西切片...:d – simbabque 2014-02-02 16:34:08