Menu
Coddy logo textTech

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 (i32 en este caso) debe coincidir con el tipo de dato de la variable donde estás almacenando el valor devuelto.

challenge icon

Desafío

Fácil

Cada 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 iterations veces 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
    }
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentals