如果我有一个如下所示的Java类,那么相同的Perl表示是什么?
class Temp {
int my_int;
int my_array[];
Temp() {
}
};
具体来说,我有兴趣知道如何使用数组作为对象变量吗?
答案 0 :(得分:7)
简短的回答是:
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;
}
对于(更多!)更长的答案,请分别查看perlref,perllol和perlboot以获取引用,列表列表和OOP训练营的介绍。一旦掌握了基础知识,请考虑使用Moose在Perl中使用更高级的OOP方法。
答案 1 :(得分:4)
使用Moose
,该类可以写成:
package Temp;
use Moose;
has 'my_int' => (
'is' => 'rw',
'isa' => 'Int',
);
has 'my_array' => (
'is' => 'rw',
'isa' => 'ArrayRef[Int]',
);
__PACKAGE__->meta->make_immutable();