Beberapa tipe data dalam objek Perl

Saya mencoba membuat objek di Perl yang berisi array, dan dua skalar integer.

Sejauh ini saya punya:

new
{
$class = shift;
$self = [];
$int1 = shift;
$int2 = shift;

bless($self, $class);
}

Ini berfungsi untuk mengakses array dengan $self->[number]

Saya ingin dapat mengakses int1 dan int2. Jika saya meletakkannya di luar konstruktor, mereka akan berubah untuk setiap instance objek saat saya mengubahnya.

Terima kasih.


person stuntpenguin007    schedule 12.10.2015    source sumber


Jawaban (1)


Dengan asumsi Anda ingin nilai integer Anda disimpan secara terpisah dari array, Anda bisa menulis

sub new {
    my $class = shift;
    my %self;
    @self{qw/ array int1 int2 /} = ( [], @_ );
    bless \%self, $class;
}

Kemudian Anda dapat mengakses skalar bilangan bulat sebagai $self->{int1} dan $self->{int2} dan elemen array sebagai $self->{array}[0], $self->{array}[1] dll. Namun saya harap Anda menyadari bahwa Anda hanya boleh melakukan itu dalam kode modul, dan Anda harus menulis metode pengakses untuk perangkat lunak eksternal itu sedang menggunakan modul

person Borodin    schedule 12.10.2015