2011-04-01 28 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結果泄漏入例子。

相關問題