如何使用Moose创建私有/公共变量和函数?

问题描述

| 我正在查看“ 0”配方,但仍然看不到是否可以使用它创建私有变量和函数?可能吗?如果是,如何用Moose创建它们?     

解决方法

就像daxim指出的那样,私有方法具有\“ _ \”前缀。因为属性(实例变量)开箱即用地生成getters方法(如果rw也是setters方法),则应执行以下操作:
has \'myvariable\' => (
    is       => \'ro\',writer   => \'_myvariable\',init_arg => undef,# other options here
);
这样,您可以在类/实例中设置此属性,而不能从外部设置该属性。如果只读访问太多,则也可以将其标记为“私有”:
has \'_myvariable\' => (
    is       => \'ro\',writer   => \'_set_myvariable\'
    init_arg => undef,# other options here
);
    ,给标识符加上前缀“ 3”,以将功能/变量等标记为私有。这在perlstyle的有关范围的部分中进行了记录,大约在文档的中间。 理智的程序员和某些工具(源解析器/文档)都尊重这一点,但编译器未强制执行。请参阅perlmodlib#NOTE。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...