【发布时间】:2019-09-18 12:47:37
【问题描述】:
如何动态地将属性添加到类中?我试过了,但它抱怨缺少方法,我不知道为什么,因为我没有尝试添加方法。
use v6.d;
class Foo does Metamodel::AttributeContainer {
submethod BUILD(:$attr) {
my $a = Attribute.new(:name($attr), :type(Str), :package(Foo));
self.add_attribute(self, $a);
}
}
my Foo $foo = Foo.new(:attr('bar'));
$foo.bar = 'baz'; # No such method 'bar' for invocant of type 'Foo'
say $foo.bar;
【问题讨论】:
标签: metaprogramming raku