Curso de Raku / Avanzado / Más sobre los tipos integrados / Tipos nativos / Exercises / El valor predeterminado nativo
Solución: El valor predeterminado nativo
Aquí tienes una de las posibles soluciones:
Código
my num $n;
my str $s;
say $n;
say "[$s]";🦋 Encuentra el programa en el archivo native-default.raku.
Salida
0
[]Comentarios
Un
numnativo no puede ser indefinido, así que al igual que unintnativo, comienza en0en lugar de en(Num).Un
strnativo comienza como la cadena vacía, por eso los corchetes aparecen sin nada entre ellos. Ninguno de los tipos nativos contiene jamás un valor indefinido.Los especificadores de tipo son esenciales aquí. Si los omites — escribes
my $n; my $s;— las variables se convierten en contenedores ordinarios que comienzan indefinidos (Any). Entoncessay $nimprime(Any), e interpolar el$sindefinido genera la advertencia “Use of uninitialized value … in string context”. Son los tipos nativosnumystrlos que garantizan los valores por defecto0y cadena vacía.