Miré la documentación writef() para cualquier especificador bool y no parecía haber ninguno.

En un programa de Capilla tengo: ...

config const verify = false;
/* that works but I want to use writef() to also print a bunch of other stuff*/
writeln("verify = " + verify); 
writef("verify = %<what-specifier-goes-here>\n", verify);

Esta última declaración funciona bien.

// I guess I could do:

writef( "verify = %s\n",if verify then "true" else "false");
7
Michael Merrill 12 nov. 2017 a las 01:21

2 respuestas

La mejor respuesta

Según la FormattedIO documentación, no hay un especificador bool disponible en el IO formateado de Chapel.

En su lugar, puede utilizar el especificador genérico (%t) para imprimir tipos bool en IO formateado:

config const verify = false;
writef("verify = %t\n", verify);

Este especificador utiliza el método writeThis o readWriteThis del tipo para imprimir la variable. La documentación de Chapel IO proporciona más detalles sobre cómo funcionan estos métodos.

3
ben-albrecht 12 nov. 2017 a las 19:31

No, no existe tal <specifier> para bool en FormattedIO

Como < strong> documentación explica, no existe tal bool - especificador específico de valor en el reciente lanzamiento de lenguaje de Chapel.

Una conversión basada en valores verify está bien.

config const verify    =  false;
var aTrueFalseAsSTRING = "false";

if verify then aTrueFalseAsSTRING = "true";

writef( "verify = %s\n",
         aTrueFalseAsSTRING
         );
-1
user3666197 11 nov. 2017 a las 23:28