Valores de retorno
Parte de la sección Fundamentals del Journey de Rust de Coddy — lección 51 de 75.
La sentencia return en un método se utiliza para especificar el valor o los valores que el método debe producir como su salida. Por ejemplo, el siguiente método producirá 100:
fn function_name() -> i32 {
return 100;
}Observa que la función está devolviendo un tipo de dato i32 debido al signo de flecha ->.
Para pasar el valor de retorno a una variable, escribe:
let number: i32 = function_name();Ahora la variable number contendrá 100 porque esto es lo que el método devolvió.
Ten en cuenta que el tipo de retorno del método (
i32en este caso) debe coincidir con el tipo de dato de la variable donde estás almacenando el valor devuelto.
Desafío
FácilCada caso de prueba tiene tres entradas.
La primera entrada indica cuántas veces se deben realizar las iteraciones, y las dos últimas entradas son números sobre los cuales realizaremos operaciones.
Crea un método que reciba dos argumentos y devuelva el número más grande de los dos. Si ambos son iguales, devuelve uno de ellos.
Itera iterations veces y para cada iteración haz lo siguiente:
- Llama al método con
num1,num2, y guarda el resultado en una variable. - Divide el número más grande de los dos por
2, y luego reemplaza la variable original más grande con el nuevo valor del resultado. - Imprime el nuevo valor.
- Continúa haciéndolo hasta que el programa haya iterado
iterationsveces o uno de los números sea menor que 2.
¡Ten en cuenta que ya tienes el esqueleto del código!
Hoja de referencia
La sentencia return especifica el valor que una función produce como salida:
fn function_name() -> i32 {
return 100;
}Usa la flecha -> para especificar el tipo de retorno. Almacena el valor devuelto en una variable:
let number: i32 = function_name();El tipo de retorno debe coincidir con el tipo de datos de la variable donde almacenas el valor devuelto.
Pruébalo tú mismo
use std::io;
fn bigger(arg1: f64, arg2: f64) -> f64 {
// Completa la función
}
fn main() {
let mut input_iter = String::new();
let mut input_num1 = String::new();
let mut input_num2 = String::new();
io::stdin().read_line(&mut input_iter).unwrap();
io::stdin().read_line(&mut input_num1).unwrap();
io::stdin().read_line(&mut input_num2).unwrap();
let iter: i32 = input_iter.trim().parse().unwrap();
let mut num1: f64 = input_num1.trim().parse().unwrap();
let mut num2: f64 = input_num2.trim().parse().unwrap();
for _ in 0..iter {
// Escribe tu código a continuación
}
}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 33Variables 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