D 中 printf() 和 writeln() 的区别

Difference between printf() and writeln() in D

D语言中printf("Hello, world!")writeln("Hello, world!")有什么区别?

我注意到 writeln() 会在结尾自行中断,而 printf() 不会。这是唯一的区别吗?

printf 正在调用 C 函数,因此按 C 类型规则工作。值得注意的是,您必须获得正确的格式字符串,否则您将一无所获。例如,当您指定 %s 而不是 %d 时传递 int 可能会使您的程序崩溃。

writef 在 D 中知道你传递的类型,因此在大多数情况下会自动做正确的事情,或者在不可能时抛出异常而不是破坏你的记忆。

writeflnwritef,它也会自动在末尾添加一个新行。

printf,就像在 C 中一样,接受格式字符串。 (例如 printf("number = %d", 123) 输出 "number = 123")

writeln 会将每个参数转换为字符串并依次打印,然后打印换行符。 (例如 writeln("number = ", 123) 输出 "number = 123")