问题描述
|
我正在查看“ 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。