D имеет два способа объявить строки WYSIWYG:
r"thestring"
`thestring`
Итак, следующая программа
import std.stdio;
void main()
{
auto a = r"hello\nworld";
auto b = `hello\nworld`;
writeln(a);
writeln(b);
}
печать
hello\nworld
hello\nworld
Однако, если у вас есть произвольная строка, а не строковый литерал, и вы хотите иметь возможность печатать ее с символами новой строки и тому подобным, которые будут напечатаны как их escape-последовательности, вам придется выполнить некоторую обработку строк - скорее всего, с помощью std.string.replace()
для замены каждого символа его escape-последовательностью на дополнительные обратные косые черты. Например, чтобы избежать перевода строки, вы должны сделать следующее:
str.replace("\n", "\\n");
Но вам придется делать это индивидуально для '\ t', '\ r', '\' и т. Д. Я не знаю ни одного способа сделать это автоматически. Строки WYSIWYG позволяют вам избежать необходимости использовать все дополнительные обратные слеши при построении строки.