2011-04-01 7 views
6

La mayoría de los tutoriales de lenguaje D que he visto usan printf para enviar texto a la consola, pero eso no puede ser correcto. Sé que D proporciona acceso directo a las bibliotecas C/C++, pero ¿no debería usarse la función de salida de la consola D's? ¿Cuál es el método preferido para enviar texto (formateado o no) a una ventana de la consola?¿Cuál es el método de salida de consola preferido en D moderno?

Respuesta

9

Dentro del módulo std.stdio, encontrará write y amigos: writeln, writef y writefln.


write apenas toma cada argumento, la convierte en una cadena, y le da salida:

import std.stdio; 

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

writef trata de la primera cadena como un formato especificador (muy parecido a C de printf), y lo usa para dar formato a los argumentos restantes:

import std.stdio; 

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

las versiones que terminan en "ln" son equivalentes a la versión sin pero también agrega una nueva línea al final de la impresión. Todas las versiones son de tipo seguro (y por lo tanto extensible).

1

El uso de printf es en su mayoría histórico. Se ha utilizado porque está declarado en uno de los módulos que se importa automáticamente y que hace que los ejemplos sean más cortos. Además, el autor de D escribió muchos de los ejemplos y IIRC, mientras que depurando el compilador prefiere printf sobre writef porque hay menos para salir mal. Esa memoria muscular más resultados en printf se filtre en ejemplos.

Cuestiones relacionadas