Какой предпочтительный метод вывода на консоль в современном D?

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


person Maxpm    schedule 01.04.2011    source источник


Ответы (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», эквивалентны версии без него, но также добавляют новую строку в конце печати. Все версии типобезопасны (и, следовательно, расширяемы).

person GManNickG    schedule 01.04.2011

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

person BCS    schedule 04.04.2011