Kurso de Raku / Esencoj / Skalaraj variabloj / Ekzercoj / Interŝanĝi valorojn

Solvo: Interŝanĝi valorojn

En ĉi tiu programo, ni uzas la elementojn de Raku-sintakso el la sekcio pri skalaj variabloj.

Kodo

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

🦋 Vi povas trovi la fontokodon en la dosiero swap.raku.

Eligo

Rulu la programon kaj konfirmu ke ĝi presas la valorojn en malsama ordo.

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

Komentoj

Ĉiuj paŝoj de ĉi tiu programo (kreado de variablo kaj asignado de la valoroj, interŝanĝo de ili, kaj presado) uzas ambaŭ variablojn en la sama konstruo. La plej interesa ĉi tie estas la maniero kiel la variabloj interŝanĝas siajn valorojn:

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

Notu ke vi bezonas krampojn ĉe la maldekstra flanko, sed vi ankaŭ povas aldoni ilin ĉe la dekstra flanko:

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

Kio okazas se vi preterlasas krampojn?

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

En ĉi tiu kazo, vi ricevas averton ke $a ĉe la dekstra flanko ne estas uzata:

$ raku exercises/scalar-variables/swap.raku
AVERTOJ por /Users/ash/raku-course/exercises/scalar-variables/swap.raku:
Senzaŭza uzo de $a en sink-kunteksto (linioj 2, 2)
10, 20

La supra linio estas fakte ekvivalenta al senutila asigno $b = $b. Vi povas facile vidi ĝin se vi modifas la valorojn ĉe la dekstra flanko, ekzemple:

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

Ĉi tiu programo presas eĉ pli da avertoj, sed vi ankaŭ povas vidi ke nur $b ŝanĝis sian valoron:

$ raku exercises/scalar-variables/swap.raku
AVERTOJ por /Users/ash/raku-course/exercises/scalar-variables/swap.raku:
Senzaŭza uzo de "*" en esprimo "3 * $a" en sink-kunteksto (linio 2)
Senzaŭza uzo de $a en sink-kunteksto (linio 2)
10, 40

Sekva ekzerco

💪 Korekti la identigilojn

Kurso navigado

Komentoj / Enmetitaj komentoj   |   Stringoj

Ĉi tiu paĝo estas aŭtomate tradukita per ChatGPT 4o. Originala angla teksto

Tradukoj de ĉi tiu paĝo: EnglishDeutschEspañolItalianoLatviešuNederlandsБългарскиРусскийУкраїнська