Curso de Raku / Esenciales / Variables escalares / Ejercicios / Intercambiar valores

Solución: Intercambiar valores

En este programa, estamos utilizando los elementos de la sintaxis de Raku de la sección sobre variables escalares.

Código

my ($a, $b) = 10, 20;
($a, $b) = $b, $a;
say "$a, $b";

🦋 Puedes encontrar el código fuente en el archivo swap.raku.

Salida

Ejecuta el programa y confirma que imprime los valores en un orden diferente.

$ raku exercises/scalar-variables/swap.raku
20, 10

Comentarios

Todos los pasos de este programa (crear una variable y asignar los valores, intercambiarlos y imprimir) usan ambas variables en la misma construcción. Lo más interesante aquí es la forma en que las variables intercambian sus valores:

($a, $b) = $b, $a;

Observa que necesitas paréntesis en el lado izquierdo, pero también puedes agregarlos en el lado derecho:

($a, $b) = ($b, $a);

¿Qué pasa si omites los paréntesis?

$a, $b = $b, $a;

En este caso, obtienes una advertencia de que $a en el lado derecho no se usa:

$ raku exercises/scalar-variables/swap.raku
WARNINGS for /Users/ash/raku-course/exercises/scalar-variables/swap.raku:
Useless use of $a in sink context (lines 2, 2)
10, 20

La línea anterior es en realidad equivalente a una asignación inútil $b = $b. Puedes verlo fácilmente si modificas los valores en el lado derecho, por ejemplo:

$a, $b = 2 * $b, 3 * $a;

Este programa imprime aún más advertencias, pero también puedes ver que solo $b cambió su valor:

$ raku exercises/scalar-variables/swap.raku
WARNINGS for /Users/ash/raku-course/exercises/scalar-variables/swap.raku:
Useless use of "*" in expression "3 * $a" in sink context (line 2)
Useless use of $a in sink context (line 2)
10, 40

Siguiente ejercicio

💪 Corregir los identificadores

Comentarios / Comentarios incrustados   |   Cadenas

Esta página está traducida automáticamente con ChatGPT 4o. Texto original en inglés.

Traducciones de esta página: EnglishDeutschEspañolItalianoLatviešuNederlandsБългарскиРусскийУкраїнська