Sumar números enteros
Veamos cómo calcular la suma de dos números enteros, por ejemplo, 80 y 34.
Coloque la siguiente línea como el único contenido dentro de las llaves de la función principal:
print!("The sum is {}", 80 + 34);La ejecución imprimirá: “La suma es 114”.
El segundo argumento de la macro print es la expresión 80 - 34.
El compilador no almacena en el archivo ejecutable los números tal como aparecen en el código fuente, en formato decimal. El compilador puede convertir los dos números a formato binario y luego almacenar en el archivo ejecutable dichos números binarios y la instrucción de suma en lenguaje máquina. En tiempo de ejecución, se suman los dos números binarios, obteniendo el número 114 en formato binario.
Pero, como esta expresión sólo contiene valores constantes, el compilador probablemente optimiza la operación de suma evaluando directamente esa expresión, obteniendo el número entero 114; luego almacena ese número, en formato binario, en el archivo ejecutable.
En ambos casos, durante la ejecución, el número binario resultante se convierte a la cadena de tres caracteres “114” en formato decimal, y luego el marcador de posición { } de la cadena literal se reemplaza por la cadena generada. Finalmente, la cadena resultante se imprime en la consola.
Tenga en cuenta que el programa ha generado la cadena «La suma es 114»; no está presente en el código fuente, por lo que sigue siendo una cadena, pero no una cadena literal.
De forma similar, la secuencia de dos caracteres 80 representa un número entero directamente en el código fuente, por lo que se denomina entero literal. Lo mismo ocurre con los dos caracteres 34. En cambio, el número entero 114 no es un entero literal, ya que no aparece en el código fuente.
También puedes escribir:
print!("{} + {} = {}", 34, 80, 80+ 34);cuya ejecución imprimirá 34 + 80 = 114.
En tal caso, el segundo argumento de la macro se colocará donde está el primer marcador de posición, el tercer argumento donde está el segundo marcador de posición y el cuarto argumento donde está el tercer marcador de posición.
Puede especificar cientos de argumentos para la macro print, siempre que los argumentos después del primero sean tantos como los marcadores de posición { } dentro del primer argumento.