Каков предпочтительный метод вывода консоли в современном D? - PullRequest
6 голосов
/ 01 апреля 2011

В большинстве учебных пособий по языку D, которые я видел, для вывода текста на консоль используется printf, но это не может быть правильным.Я знаю, что D обеспечивает прямой доступ к библиотекам C / C ++, но не следует ли вместо этого использовать функцию вывода консоли D?Какой метод вывода текста (отформатированный или иным образом) в окно консоли предпочтителен?

Ответы [ 2 ]

9 голосов
/ 01 апреля 2011

В модуле std.stdio вы найдете write и друзей: writeln, writef и writefln.


write просто принимает каждый аргумент,преобразует ее в строку и выводит ее:

import std.stdio;

void main()
{
    write(5, " <- that's five"); // prints: 5 <- that's five
}

writef обрабатывает первую строку как спецификатор формата (во многом как C printf) и использует ее для форматирования оставшихся аргументов:

import std.stdio;

void main()
{
    writef("%d %s", 5, "<- that's five"); // prints: 5 <- that's five
}

Версии, заканчивающиеся на «ln», эквивалентны версии без нее, но также добавляют новую строку в конце печати.Все версии являются типобезопасными (и, следовательно, расширяемыми).

1 голос
/ 04 апреля 2011

Использование printf в основном историческое.Он был использован, потому что он объявлен в одном из модулей, который автоматически импортируется, что сокращает примеры.Кроме того, автор D написал множество примеров и IIRC, отлаживая компилятор, он предпочитает printf вместо writef, потому что здесь меньше ошибок.Это плюс мышечная память приводит к printf проникновению в примеры.

...