Raku-Kurs / Fortgeschritten / Container / Skalare Container

Standardwerte

Wenn eine neue skalare Variable ohne sofortige Zuweisung erstellt wird, enthält der Container dennoch einen Wert — seinen Standardwert. Der genaue Standardwert hängt vom Typ der Variable ab.

Das folgende Programm ist nicht die beste Art, Raku zu verwenden, aber es verdeutlicht den Punkt:

my $int;
say $int + 5;

Die Ausgabe enthält 5, was du vielleicht erwartet hast, wenn du angenommen hast, dass der Standardwert von $int 0 ist. Allerdings gibt das Programm auch eine Warnung aus:

Use of uninitialized value $int of type Any in numeric context
  in block <unit> at t.raku line 2
5

Um diese Unsicherheit zu beseitigen, weise entweder explizit einen Wert zu:

my $int = 0;
say $int + 5; # 5

Oder deklariere einen Standardwert mit dem Trait is default:

my $int is default(0);
say $int + 5; # 5

Der Standardwert ist nicht auf Null beschränkt. Es kann jeder Wert sein, den du für geeignet hältst, zum Beispiel:

my $int is default(1);
say $int + 5; # 6

Kursnavigation

Quiz — Typbeschränkungen   |   Proxierung von Methodenaufrufen


💪 Oder springen Sie direkt zu den Übungen dieses Abschnitts.