2016-11-19 3 views
2

Многие современные языки программирования поддерживают систему комментариев в виде строк документации.Поддерживает ли поддержка документации D?

Эта функция принимается как само собой разумеющееся в языках программирования, как Python или Clojure, где документация строки могут быть полезны для понимания цели функции, которые могут быть непонятны иначе:

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

Я довольно новичок в D программирования , но еще не нашли документацию для написания комментариев строки документации способом, доступным для клиента (например, help(gen_ast) в Python). Предоставляет ли D поддержку докстерий?

ответ

3

Да.

Для самого кода: 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, тогда вы проанализируете это)

+0

Хорошая точка зрения о несоответствии справки() на скомпилированном языке ... Я до сих пор приспосабливаюсь к жизни без замены, чтобы вернуться обратно. –

1

В ответ на ответ @Adam D Ruppe, вот соответствующий контент, извлеченный из первой ссылки, которая является официальной спецификацией для создания документации D.

Во-первых, возвращает функций определены следующим образом:

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

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

Во-вторых, примеры указаны в похожую образом, в случае необходимости:

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

Однако, я нашел в документации неясно, с в отношении возможности использования этих соглашений для создания автоматической документации.

Смежные вопросы