Jim*_*ger 4 comments raku pod6
当我运行raku --doc test.raku以下代码时:
#! /usr/bin/env raku
use v6.d;
#| The answer
my Int $bar = 42;
#= Thank you, Douglas
say $bar.WHY.leading;
say $bar.WHY.following;
Run Code Online (Sandbox Code Playgroud)
我没有得到任何输出。当我运行代码(raku test.raku)时,输出是:
Nil
Nil
Run Code Online (Sandbox Code Playgroud)
有没有办法将声明器块与变量一起使用?
在任何地方放置声明符注释在语法上都是有效的;人们甚至可以将其写在一份声明中:
#| Look, a statement
say "hello";
Run Code Online (Sandbox Code Playgroud)
Rakudo 目前仅将文档附加到包、属性、例程和参数,因为它们具有元对象,可以附加文档。
相比之下,Comma IDE 还跟踪变量的文档注释,并可以在变量的使用站点显示它们:
然而,跟踪它们的 IDE 与使它们在运行时可用的 Rakudo 实现有很大不同。
如果声明符注释适用于变量,几乎可以肯定必须这样写:
say $bar.VAR.WHY.leading;
Run Code Online (Sandbox Code Playgroud)
因为否则人们会谈论变量中Scalar的内容,而不是(或Array或Hash) 容器本身。即使如此,如果有一个绑定:
#| The answer
my Int $bar := 42;
Run Code Online (Sandbox Code Playgroud)
然后没有容器可以附加文档,因此无法在运行时访问它。
即将推出的 RakuAST(Raku 代码的标准化文档对象模型)将允许提供对附加到任何内容的声明器文档的访问(尽管目前还没有);这仍然不会提供对文档的运行时访问,但它会为工具提供一种解析和提取文档的方法。