यह एक बुनियादी सवाल है, मुझे डर है। निम्नलिखित कोड पर एक नज़र डालें। मैं जानना चाहता हूं कि slices
विशेषता को इस तरह से घोषित करने का कोई तरीका है कि get_slices
और add_slice
के बॉयलरप्लेट से बचने के लिए।सरणी विशेषताओं के लिए सुविधा कार्यों को जोड़ने के लिए मूस का उपयोग कैसे करें?
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;
धन्यवाद!
मैं कल्पना करने के लिए ककड़ी की तरह आप में कुछ की स्लाइस रख सकते हैं कि लग रहा है क्या कोशिश कर रहा हूँ ...: डी – simbabque