class X::Attribute::NoPackage does X::MOP { }

在创建对象时未分配必需属性时抛出编译时错误。

例如

my class Uses-required {
    has $.req is required
};
my $object = Uses-required.new()

使用

OUTPUT: «(exit code 1) The attribute '$!req' is required, but you did not provide a value for it.␤»

方法§

方法名称§

method name(--> Str:D)

返回属性的名称。

方法原因§

method why(--> Str:D)

返回该属性必需的原因,如果提供,它将包含在消息中。该原因直接取自 is required 特性。

my class Uses-required {
    has $.req is required("because yes")
};
my $object = Uses-required.new();                                  │
# OUTPUT: 
# «(exit code 1) The attribute '$!req' is required because because yes,␤ 
# but you did not provide a value for it.␤»