如何在 Moose 中声明/使用静态成员?

发布于 2024-10-19 19:41:11 字数 91 浏览 4 评论 0原文

我正在使用 Moose 对象,但我需要为仅执行一次且与对象无关的事情声明静态成员。

您有什么想法或例子吗?

谢谢

多坦。

I am using Moose objects, but I need to declare static members for things that will be done just once and are not object related.

Do you have any ideas or examples?

Thanks

Dotan.

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

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

发布评论

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

评论(3

旧城空念 2024-10-26 19:41:11

您可以使用 MooseX::ClassAttribute

package SomeClass;
use Moose;
use MooseX::ClassAttribute;

class_has 'static_member' => ( is => 'rw' );

使用 SomeClass 访问成员->static_member

You can use MooseX::ClassAttribute:

package SomeClass;
use Moose;
use MooseX::ClassAttribute;

class_has 'static_member' => ( is => 'rw' );

The member is accesses using SomeClass->static_member.

心清如水 2024-10-26 19:41:11

我尝试按照 bvr 的建议使用 MooseX::ClassAttribute,但最终我只是将它们设置为默认的只读成员:

has 'static_thing' => ( is => 'ro', init_arg => undef, default => 42 );

这似乎更简单。

I tried playing around with MooseX::ClassAttribute as bvr suggested, but I ended up just setting them as read-only members with a default:

has 'static_thing' => ( is => 'ro', init_arg => undef, default => 42 );

It seems simpler.

梦巷 2024-10-26 19:41:11

在所有的鹿性之下,仍然是普通的旧 Perl

,所以只需在类 .pm 文件中设置一个变量

package SomeClass;
use Moose;

my $instance_counter = 0;

around BUILDARGS => sub {
    $instance_counter += 1;
}

. . .

under all the cervine-ness there is still Plain Old Perl

so just set a variable in the class .pm file

package SomeClass;
use Moose;

my $instance_counter = 0;

around BUILDARGS => sub {
    $instance_counter += 1;
}

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