perl - 如何使用 Moose 创建私有(private)/公共(public)变量和函数?

标签 perl oop moose

我正在通过Moose食谱,我仍然看不到我是否可以使用它创建私有(private)变量和函数?是否可以?如果是,如何用 Moose 创建它们?

最佳答案

就像 daxim 指出的那样,私有(private)方法具有“_”前缀。因为属性(实例变量)生成开箱即用的 getter 方法(如果 rw 还生成 setters 方法),您应该这样做:

has 'myvariable' => (
    is       => 'ro',
    writer   => '_myvariable',
    init_arg => undef,
    # other options here
);

这样你就可以在你的类/实例中设置这个属性,并且它不能从外部设置。如果只读权限过多,也可以将其标记为“私有(private)”:
has '_myvariable' => (
    is       => 'ro',
    writer   => '_set_myvariable'
    init_arg => undef,
    # other options here
);

关于perl - 如何使用 Moose 创建私有(private)/公共(public)变量和函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5645356/

相关文章:

perl - 当我尝试对数组使用重复赋值运算符时,为什么会出现错误?

perl - 如何在 Perl 中执行自省(introspection)?

perl - 是否有使 Moose 属性显示在 Tag_List 中的 vim 插件?

perl - MooseX::Types 强制转换和 $self

Perl - 使用重写方法避免调用 super()

javascript - 在没有服务器的情况下从java脚本调用perl

c++ - OpenCL 重用具有不同 DEFINE (-D) 的 cl_kernel

django - Python/django.db : How to create a generic class without hardcoded Meta. db_table?

java - 搜索历史和过滤器的面向对象设计

moose - Moxie 的用例是什么?