Curso de Raku / Esenciales / 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); # 20
Es 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); # 20
Pasando 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); # 20
Esto es similar a una llamada más verbosa:
say distance(from => $from, to => $to); # 20
Nuevamente, el orden no es estricto aquí:
say distance(:$to, :$from); # 20
Si 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
Completa los cuestionarios que cubren el contenido de este tema.
Navegación del curso
← Crear y llamar funciones / Parámetros posicionales | Crear y llamar funciones / Valores predeterminados →
💪 Or jump directly to the exercises to this section.
Esta página está traducida automáticamente con ChatGPT 4o. Texto original en inglés.
Traducciones de esta página: English • Deutsch • Español • Italiano • Latviešu • Nederlands • Български • Русский • Українська