自省NQP角色

时间:2019-01-20 09:46:29

标签: oop mixins perl6 introspection nqp

this question in StackOverflow中,我发现了Type.^roles,其中包括组成一个类型的所有角色。它可以在所有地方使用,但是如果某个地方有NQP角色,则无法打印:

 say Cursor.^roles# OUTPUT: «No such method 'gist' for invocant of type 'NQPMatchRole'. Did you mean 'ast'?␤  in block <unit> ␤␤»

没有方法gistStr。但是,^name似乎可以工作:

my @cursor-roles = Cursor.^roles; print $_.^name for @cursor-roles ; # OUTPUT: «NQPMatchRole»

我是否可以假设NQP角色遵循与Perl 6相同的元模型,并且我至少可以使用^name?是否有一种更通用的方式来打印所有角色,包括Perl 6和NQP角色?

0 个答案:

没有答案