Parámetros y argumentos
Parte de la sección Fundamentals del Journey de Rust de Coddy — lección 50 de 75.
Un argumento en una función es un valor que pasas a la función cuando la llamas. Para añadir argumentos a una función, los escribimos dentro de los paréntesis ():
fn function_name(arg1: data_type, arg2: data_type, ...) {
// código
}Podemos nombrar los argumentos como queramos y podemos escribir tantos argumentos como necesitemos.
Para llamar a una función y pasarle argumentos, escribimos:
function_name(value1, value2, value3, ...);Pasar demasiados argumentos a una función que espera menos argumentos causará que el programa falle
Ejemplo de uso:
fn is_even(number: i32) {
if number % 2 == 0 {
println!("{} is even", number);
} else {
println!("{} is odd", number);
}
}
for i in 15..34 {
is_even(i);
}
for i in 153..219 {
is_even(i);
}Aquí tenemos una función llamada is_even que acepta un argumento llamado number e imprime si el número es par o impar. Luego llamamos a la función dos veces: una vez para todos los números entre 15 y 34, la segunda vez para todos los números entre 153 y 219.
Desafío
FácilEscribe un programa que reciba dos números de entrada. Los números de entrada son los argumentos de la función.
Crea una función que reciba dos argumentos, calcule el producto de ellos y lo imprima, nombra la función como quieras.
Llama a la función con los números de entrada.
¡Nota! En tu código, escribe la función antes de sus sentencias de llamada/ejecución.
Hoja de referencia
Para añadir argumentos a una función, escríbelos dentro de los paréntesis con sus tipos de datos:
fn function_name(arg1: data_type, arg2: data_type) {
// código
}Llama a una función pasando valores como argumentos:
function_name(value1, value2);Ejemplo con un argumento:
fn is_even(number: i32) {
if number % 2 == 0 {
println!("{} is even", number);
} else {
println!("{} is odd", number);
}
}
is_even(42);Pasar demasiados argumentos a una función hará que el programa falle
Pruébalo tú mismo
use std::io;
// Declaración de la función
fn main() {
let mut input_a = String::new();
let mut input_b = String::new();
io::stdin().read_line(&mut input_a).unwrap();
io::stdin().read_line(&mut input_b).unwrap();
let a: i32 = input_a.trim().parse().unwrap();
let b: i32 = input_b.trim().parse().unwrap();
// Llamar a la función con a y b como argumentos
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentals
4Operadores Parte 1
Operadores aritméticosOperador de móduloAtajos aritméticosOperadores de comparaciónComparación de strings5Operadores Parte 2
Operadores lógicos Parte 1Operadores lógicos Parte 2Repaso - Lógica simpleOperadores lógicos Parte 311Funciones
Declaración de funcionesParámetros y argumentosValores de retornoMúltiples valores de retornoRepaso: Función SigmaRepaso: Función de validación3Variables Parte 2
Declaración de tiposConvenciones de nomenclaturaInferencia de tiposResumen - Inicializar variablesConversión de tipos9Bucles
For sobre seriesBucle WhileBreakContinueBucle anidadoEtiquetas de bucleBucle infinitoResumen - Entrada dinámica