D writeln()或writefln()?

D writeln()或writefln()?,d,D,Hello World for D看起来像这样: import std.stdio; void main(string[] args) { writeln("Hello World, Reloaded"); } 从 但当我用gdc-4.4.5编译时,我得到: hello.d:5: Error: undefined identifier writeln, did you mean function writefln? hello.d:5: Error: function expecte

Hello World for D看起来像这样:

import std.stdio;

void main(string[] args)
{
    writeln("Hello World, Reloaded");
}

但当我用gdc-4.4.5编译时,我得到:

hello.d:5: Error: undefined identifier writeln, did you mean function writefln?
hello.d:5: Error: function expected before (), not __error of type _error_

这是首被告还是次被告?图书馆的事?writefln是一个stdio库函数而writeln不是,这似乎很奇怪。

是的,
writeln
仅在D2的标准库中可用。

正如CyberShadow提到的,
writeln
仅在D2中可用。它们之间的区别是
writeln
只按原样打印其参数,而
writefln
将其第一个参数解释为格式字符串,就像C的
printf
一样

例如:

import std.stdio;

void main() {
    // Prints "There have been 44 U.S. presidents."  Note that %s can be used
    // to print the default string representation for any type.
    writefln("There have been %s U.S. presidents.", 44);

    // Same thing
    writeln("There have been ", 44, " U.S. presidents.");
}

而且,据我所知,gdc目前只支持D1,这就解释了为什么这是一个问题。为什么你认为它只支持D1?我怀疑这个bug与@Jonathan:我的错误有关。我在看一个旧的gdc网站,它从2007年起就没有更新过。