警告:此角色是 Rakudo 实现的一部分,不属于语言规范。
元模型角色适用于C3 方法解析顺序 (MRO)。注意:此方法以及几乎整个元模型都是 Rakudo 实现的一部分。
类型的方法解析顺序是包含类型本身的扁平类型列表,以及(递归地)所有超类。它确定在给定名称的情况下访问哪些类型来确定要调用的方法,或使用nextsame、callsame、nextwith或callwith查找链中的下一个方法。
; # implicitly inherits from Anyis CommonAncestoris CommonAncestoris Child2is Child1 is GrandChild2 ;say Weird.^mro; # OUTPUT: «(Weird) (Child1) (GrandChild2) (Child2) (CommonAncestor) (Any) (Mu)»
C3 是 Raku 中类和语法的默认解析顺序。请注意,角色通常不会出现在方法解析顺序中(除非它们被双关语到一个类中,另一个类型从此类继承),因为方法在角色应用时被复制到类中。
方法§
方法 compute_mro§
method compute_mro()
计算方法解析顺序。
方法 mro§
method mro()
返回方法解析顺序中的类型列表,即使那些标记为is hidden
的类型也是如此。
say Int.^mro; # OUTPUT: «((Int) (Cool) (Any) (Mu))»
方法 mro_unhidden§
method mro_unhidden()
返回方法解析顺序中的类型列表,不包括标记为is hidden
的类型。