2011-04-01 46 views
6

我见过的大多数D语言教程使用printf来输出文本到控制台,但这不可能是正确的。我知道D提供了对C/C++库的直接访问,但是不应该使用D的控制台输出函数吗?将文本(格式化或其他)输出到控制台窗口的首选方法是什么?现代D的首选控制台输出方法是什么?

回答

9

在模块内std.stdio,你会发现write,朋友们:writelnwritefwritefln


write只是需要每个参数,将其转换成字符串,并将其输出:

import std.stdio; 

void main() 
{ 
    write(5, " <- that's five"); // prints: 5 <- that's five 
} 

writef对待第一字符串作为格式说明符(很像C'S printf),并使用它格式化其余的参数:

import std.stdio; 

void main() 
{ 
    writef("%d %s", 5, "<- that's five"); // prints: 5 <- that's five 
} 

的版本结尾与“ln”相当于现在的版本不它,但也在打印结束时添加一个换行符。所有版本都是类型安全的(因此是可扩展的)。

1

使用printf主要是历史。它已被使用,因为它是在自动导入的一个模块中声明的,并使示例更短。此外,D的作者编写了许多例子和IIRC,在调试编译器时,他更喜欢printf而不是writef,因为出错率较低。那加上肌肉记忆在printf结果泄漏入例子。