加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl – 禁止Moose类中的非属性参数

发布时间:2020-12-16 06:23:37 所属栏目:大数据 来源:网络整理
导读:如果在Moose的构造函数调用中有额外的参数而不是属性,有没有办法死?例如,这个: package Shoe;use Moose;has 'size' = (is = 'ro',isa = 'Num');has 'color' = (is = 'ro',isa = 'Str',default = 'brown');1; 会死的 my $sneaker = Shoe-new(size = 11,colo
如果在Moose的构造函数调用中有额外的参数而不是属性,有没有办法死?例如,这个:

package Shoe;
use Moose;
has 'size'  => (is => 'ro',isa => 'Num');
has 'color' => (is => 'ro',isa => 'Str',default => 'brown');
1;

会死的

my $sneaker = Shoe->new(size => 11,colour => 'white');

因为颜色不是鞋子的属性.

我可以发誓我已经看过一个模块或者其他什么来做这件事,但我找不到它.

解决方法

对我来说工作 MooseX::StrictConstructor:

package Shoe;
use Moose;
use MooseX::StrictConstructor; # <-- that's all what need
has 'size'  => (is => 'ro',isa => 'Str');
1;

package main;
my $sneaker = Shoe->new(size => 11,colour => 'white'); #blows up

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读