role Metamodel::Documenting { }

警告:此角色是 Rakudo 实现的一部分,不属于语言规范。

类型声明可能包含声明块(#|#=),允许您设置类型的文档。然后可以通过该类型对象的 WHY 方法访问它

#|[Documented is an example class for Metamodel::Documenting's documentation.] 
class Documented { }
#=[Take a look at my WHY!] 
 
say Documented.WHY;
# OUTPUT: 
# Documented is an example class for Metamodel::Documenting's documentation. 
# Take a look at my WHY! 

Metamodel::Documenting 是为类型实现此行为的。此示例可以重写为显式使用其方法,如下所示

BEGIN {
    our Mu constant Documented = Metamodel::ClassHOW.new_type: :name<Documented>;
    Documented.HOW.compose: Documented;
    Documented.HOW.set_why: do {
        my Pod::Block::Declarator:D $pod .= new;
        $pod._add_leading:  "Documented is an example class for Metamodel::Documenting's documentation.";
        $pod._add_trailing: "Take a look at my WHY!";
        $pod
    };
}
 
say Documented.HOW.WHY;
# OUTPUT: 
# Documented is an example class for Metamodel::Documenting's documentation. 
# Take a look at my WHY! 

通常不需要像这样直接通过其 HOW 处理类型的文档,因为 Metamodel::Documenting 的方法通过 Mu 通过其 WHYset_why 方法公开,在大多数情况下都可以在类型上使用。

方法§

方法 set_why§

method set_why($why)

将类型的文档设置为 $why

方法 WHY§

method WHY()

返回类型的文档。