oop - 如何发现 Perl 6 类型的所有角色?
问题描述
我可以检查一个类型是否具有.does
我已经知道的角色。我想获取角色列表。继承有.^mro
,但我没有看到元模型中的角色有类似的东西。
除此之外,给定一个“类型”,我如何判断它是定义为类还是角色?
解决方案
.^roles
say Rat.^roles; # ((Rational[Int,Int]) (Real) (Numeric))
默认情况下,它包括每个角色,包括由其他角色引入的角色。仅获得第一级使用:!transitive
Rat.^roles(:!transitive); # ((Rational[Int,Int]))
推荐阅读
- javascript - 如何检查js数组中是否存在字符串?
- amazon-web-services - 我可以得到一个 aws lambda 来运行 rspec 测试吗?
- android - NetworkBoundResource:为什么在 `ApiEmptyResponse` 中使用 `loadFromDb()`
- rust - 如何将生命周期检查推迟到运行时
- javascript - React 在我的 Flask 应用程序的索引页面中不起作用?
- javascript - 使用 Javascript 应用 KeyUp 和 KeyDown
- css - 如何修复 wordpress 主题开发中的浏览器问题
- c++ - hiredis SET 遇到分段错误
- mysql - 如何根据返回相同数据的多列进行更新或插入,而无需访问唯一 ID
- assembly - 在汇编中使用地址作为参数