Raku kurss / Pamati / Skalarie mainīgie / Vingrinājumi / Vērtību apmaiņa

Risinājums: Vērtību apmaiņa

Šajā programmā mēs izmantojam Raku sintakses elementus no sadaļas par skalārajiem mainīgajiem.

Kods

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

🦋 Jūs varat atrast pirmkodu failā swap.raku.

Izvade

Palaidiet programmu un pārliecinieties, ka tā izdrukā vērtības citā secībā.

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

Komentāri

Visi šīs programmas soļi (mainīgā izveide un vērtību piešķiršana, to apmaiņa un izdrukāšana) izmanto abus mainīgos vienā konstrukcijā. Visinteresantākais šeit ir veids, kā mainīgie apmaina savas vērtības:

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

Pamaniet, ka jums ir nepieciešamas iekavas kreisajā pusē, bet jūs varat tās pievienot arī labajā pusē:

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

Kas notiek, ja izlaidīsiet iekavas?

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

Šajā gadījumā jūs saņemsiet brīdinājumu, ka $a labajā pusē netiek izmantots:

$ raku exercises/scalar-variables/swap.raku
BRĪDINĀJUMI par /Users/ash/raku-course/exercises/scalar-variables/swap.raku:
Bezjēdzīga $a izmantošana sink kontekstā (2. rinda, 2. rinda)
10, 20

Iepriekšējā rinda faktiski ir ekvivalenta bezjēdzīgai piešķiršanai $b = $b. To var viegli redzēt, ja modificējat vērtības labajā pusē, piemēram:

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

Šī programma izdrukā vēl vairāk brīdinājumu, bet jūs varat arī redzēt, ka tikai $b mainīja savu vērtību:

$ raku exercises/scalar-variables/swap.raku
BRĪDINĀJUMI par /Users/ash/raku-course/exercises/scalar-variables/swap.raku:
Bezjēdzīga "*" izmantošana izteiksmē "3 * $a" sink kontekstā (2. rinda)
Bezjēdzīga $a izmantošana sink kontekstā (2. rinda)
10, 40

Nākamais uzdevums

💪 Pareizi nosaukumi

Kursa navigācija

Komentāri / Iekļautie komentāri   |   Virknes

Šī lapa ir automātiski tulkota ar ChatGPT 4o. Oriģinālais teksts angļu valodā.

Šīs lapas tulkojumi: EnglishDeutschEspañolItalianoLatviešuNederlandsБългарскиРусскийУкраїнська