Большинство руководств по языку D, которые я видел, используют printf
для вывода текста на консоль, но это не может быть правильным. Я знаю, что D обеспечивает прямой доступ к библиотекам C/C++, но не следует ли вместо этого использовать функцию вывода консоли D? Каков предпочтительный метод вывода текста (отформатированного или иного) в окно консоли?
Какой предпочтительный метод вывода на консоль в современном D?
Ответы (2)
В модуле std.stdio
вы найдете write
и друзей: writeln
, writef
и writefln
.
write
просто берет каждый аргумент, преобразует его в строку и выводит:
import std.stdio;
void main()
{
write(5, " <- that's five"); // prints: 5 <- that's five
}
writef
обрабатывает первую строку как спецификатор формата (во многом подобно printf
в C) и использует ее для форматирования остальных аргументов:
import std.stdio;
void main()
{
writef("%d %s", 5, "<- that's five"); // prints: 5 <- that's five
}
Версии, оканчивающиеся на «ln
», эквивалентны версии без него, но также добавляют новую строку в конце печати. Все версии типобезопасны (и, следовательно, расширяемы).
Использование printf
в основном исторически сложилось. Он используется, потому что он объявлен в одном из модулей, который автоматически импортируется и делает примеры короче. Кроме того, автор D написал множество примеров и IIRC, при отладке компилятора он предпочитает printf
writef
, потому что меньше ошибок. Это плюс мышечная память приводят к тому, что printf
просачивается в примеры.