Perl 数组作为对象变量

发布于 2024-10-27 17:14:32 字数 166 浏览 1 评论 0原文

如果我有一个如下所示的 Java 类,那么类似的 Perl 表示是什么?

class Temp {
  int my_int;
  int my_array[];

  Temp() {
  }
};

具体来说,我有兴趣知道如何使用数组作为对象变量?

If I had a Java class as below, what is the similar Perl representation for the same?

class Temp {
  int my_int;
  int my_array[];

  Temp() {
  }
};

Specifically, I am interested to know how to use array as an object variable?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

棒棒糖 2024-11-03 17:14:32

简短的答案是:

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 方法。

The short answer is:

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;
}

For the (much!) longer answer, have a look at perlref, perllol, and perlboot for an introduction to references, lists of lists, and a OOP bootcamp, respectively. Once you've got your head around the basics, consider using Moose for a more advanced approach to OOP in Perl.

红衣飘飘貌似仙 2024-11-03 17:14:32

使用 Moose,该类可以写为:

package Temp;

use Moose;

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

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

__PACKAGE__->meta->make_immutable();

Using Moose, the class could be written as:

package Temp;

use Moose;

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

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

__PACKAGE__->meta->make_immutable();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文