Curso de Raku / Esenciales / Fundamentos de las funciones / Crear y llamar funciones
Parámetros nombrados
En contraste con los parámetros posicionales, los parámetros nombrados se refieren por sus nombres.
La siguiente función toma dos parámetros llamados $from
y $to.
sub distance(:$from, :$to) { $from - $to }Ahora, para llamar a la función, necesitas nombrar los argumentos:
say distance(from => 30, to => 10); # 20Es un error pasar los argumentos como si fueran posicionales. Por
ejemplo, una llamada distance(30, 10) genera un error:
Too many positionals passed; expected 0 arguments but got 2
in sub distance at t.raku line 1
in block <unit> at t.raku line 2
La parte buena es que los argumentos nombrados pueden listarse en cualquier orden. Las siguientes dos llamadas son totalmente equivalentes:
say distance(from => 30, to => 10); # 20
say distance(to => 10, from => 30); # 20Pasando variables
Cuando el valor que quieres pasar a una función se guarda en una variable, cuyo nombre coincide con el nombre del parámetro, puedes disfrutar de una sintaxis especial que reduce la escritura:
my $from = 30;
my $to = 10;
say distance(:$from, :$to); # 20Esto es similar a una llamada más verbosa:
say distance(from => $from, to => $to); # 20Nuevamente, el orden no es estricto aquí:
say distance(:$to, :$from); # 20Si el nombre de la variable difiere del nombre del parámetro, usa una de las formas de pasar un par:
my $a = 20;
my $b = 10;
say distance(from => $a, to => $b);
# o:
say distance(:from($a), :to($b));Práctica
Resuelve 2 cuestionarios sobre el contenido de este tema.
Navegación del curso
← Quiz — Llamar una función | Quiz 1 — Parámetros nombrados →
💪 O ve directamente a los ejercicios de esta
sección.