Raku kurss / Pamati / Mainīgo un datu tipu pamati / Skalarie mainīgie / Exercises / 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, 10Komentā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, 20Iepriekšē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