Курс по Raku / Напреднали / Контейнери / Скаларни контейнери

Стойности по подразбиране

Когато нова скаларна променлива е създадена без непосредствено присвояване, контейнерът все пак съдържа стойност — своята стойност по подразбиране. Точната стойност по подразбиране зависи от типа на променливата.

Програмата по-долу не е най-добрият начин за използване на Raku, но илюстрира идеята:

my $int;
say $int + 5;

Изходът съдържа 5, което може да е очакваното, ако сте приели, че стойността по подразбиране на $int е 0. Въпреки това програмата също отпечатва предупреждение:

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

За да премахнете тази неопределеност, или присвоете стойност изрично:

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

Или декларирайте стойност по подразбиране с характеристиката is default:

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

Стойността по подразбиране не е ограничена до нула. Тя може да бъде всяка стойност, която смятате за подходяща, например:

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

Навигация в курса

Тест — Ограничения на типове   |   Проксиране на методни повиквания


💪 Или преминете направо към упражненията в този раздел.