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 中知道你传递的类型,因此在大多数情况下会自动做正确的事情,或者在不可能时抛出异常而不是破坏你的记忆。
writefln
是 writef
,它也会自动在末尾添加一个新行。
printf
,就像在 C 中一样,接受格式字符串。 (例如 printf("number = %d", 123)
输出 "number = 123")
writeln
会将每个参数转换为字符串并依次打印,然后打印换行符。 (例如 writeln("number = ", 123)
输出 "number = 123")
D语言中printf("Hello, world!")
和writeln("Hello, world!")
有什么区别?
我注意到 writeln()
会在结尾自行中断,而 printf()
不会。这是唯一的区别吗?
printf
正在调用 C 函数,因此按 C 类型规则工作。值得注意的是,您必须获得正确的格式字符串,否则您将一无所获。例如,当您指定 %s
而不是 %d
时传递 int
可能会使您的程序崩溃。
writef
在 D 中知道你传递的类型,因此在大多数情况下会自动做正确的事情,或者在不可能时抛出异常而不是破坏你的记忆。
writefln
是 writef
,它也会自动在末尾添加一个新行。
printf
,就像在 C 中一样,接受格式字符串。 (例如 printf("number = %d", 123)
输出 "number = 123")
writeln
会将每个参数转换为字符串并依次打印,然后打印换行符。 (例如 writeln("number = ", 123)
输出 "number = 123")