D是否支持文档生成?

Does D support documentation generation?

许多现代编程语言都支持将注释系统作为文档字符串。

此功能在 Python 或 Clojure 等语言中是理所当然的,其中文档字符串可能有助于理解函数的用途,否则可能不清楚:

def gen_ast(s):
    ''' given a string, s, representing a program, generates object model of abstract syntax tree '''
    # function contents here ...

我是 D 编程的新手,但尚未找到以客户端可访问的方式编写文档字符串注释的文档(例如 Python 中的 help(gen_ast))。 D 是否支持文档字符串?

是的。

对于代码本身: http://dlang.org/spec/ddoc.html

命令行选项: http://dlang.org/phobos/std_getopt.html

从代码中得到: http://dlang.org/spec/attribute.html#uda

但是,可以公平地说,文档注释无法在代码中直接访问 - 您必须将其作为 UDA 或 getopt 库文档字符串来执行,或者在构建集中使用单独的命令来提取注释(dmd -D 将它们变成 html,dmd -D -X 将它们变成 json,然后你解析它)

作为@Adam D Ruppe 回答的后续,这里是从第一个 link 中提取的相关内容,这是 D 文档生成的官方规范。

首先,returns的函数指定如下:

 /**
 * Read the file.
 * Returns: The contents of the file.
 */

void[] readFile(char[] filename) { ... }

其次,在需要的地方以类似的方式指定示例:

/**
 * Examples:
 * --------------------
 * writeln("3"); // writes '3' to stdout
 * --------------------
 */

但是,我发现文档在使用这些约定自动生成文档的能力方面并不清楚。