簡體   English   中英

Perl數組作為對象變量

[英]Perl array as an object variable

如果我有一個下面的Java類,相同的Perl表示是什么?

class Temp {
  int my_int;
  int my_array[];

  Temp() {
  }
};

具體來說,我有興趣知道如何將數組用作對象變量?

簡短的答案是:

package Temp;

sub new {
    my $self = bless {
        'my_int' => 0,
        'my_array' => [] # The trick here is to use an array *reference*
                         # hence the square brackets rather than ()
    };
    return $self;
}

對於(很多!)更長的答案,請查看perlrefperllolperlboot以獲得分別對引用,列表列表和OOP 訓練營的介紹。 一旦掌握了基礎知識,就可以考慮使用Moose在Perl中使用更高級的OOP方法。

使用Moose ,該類可以編寫為:

package Temp;

use Moose;

has 'my_int' => (
    'is'  => 'rw',
    'isa' => 'Int',
);

has 'my_array' => (
    'is'  => 'rw',
    'isa' => 'ArrayRef[Int]',
);

__PACKAGE__->meta->make_immutable();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM