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

时间:2015-11-17 20:43:21

标签: d

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

我注意到writeln()最终会被自己打破,而printf()却没有。这是唯一的区别吗?

2 个答案:

答案 0 :(得分:6)

printf正在调用C函数,因此通过C类型规则工作。值得注意的是,您必须正确获取格式字符串,否则您将无意义。例如,在您指定int而不是%s时传递%d可能会导致您的计划崩溃。

D中的

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

writeflnwritef,它会自动添加一个新行。

答案 1 :(得分:2)

像在C中一样,

printf接受格式字符串。 (例如printf("number = %d", 123)打印"数字= 123")

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