Valores de Retorno
Parte da seção Fundamentals do Journey de Rust da Coddy — lição 51 de 75.
A instrução return em um método é usada para especificar o valor ou valores que o método deve produzir como sua saída. Por exemplo, o seguinte método produzirá 100:
fn function_name() -> i32 {
return 100;
}Observe que a função está retornando um tipo de dado i32 por causa do sinal de seta ->.
Para passar o valor de retorno para uma variável, escreva:
let number: i32 = function_name();Agora a variável number conterá 100 porque isso é o que o método retornou.
Observe que o tipo de retorno do método (
i32neste caso) deve corresponder ao tipo de dado da variável onde você está armazenando o valor retornado.
Desafio
FácilCada caso de teste possui três entradas.
A primeira entrada indica quantas vezes as iterações devem ser realizadas, e as duas últimas entradas são números sobre os quais realizaremos operações.
Crie um método que receba dois argumentos e retorne o maior número entre os dois. Se ambos forem iguais, retorne um deles.
Itere iterations vezes e, para cada iteração, faça o seguinte:
- Chame o método com
num1,num2e salve o resultado em uma variável. - Divida o maior número entre os dois por
2e, em seguida, substitua a variável original maior pelo novo valor resultante. - Imprima o novo valor.
- Continue fazendo isso até que o programa tenha iterado
iterationsvezes ou um dos números seja menor que 2.
Note que você já possui o esqueleto do código!
Folha de consulta
A instrução return especifica o valor que uma função produz como saída:
fn function_name() -> i32 {
return 100;
}Use a seta -> para especificar o tipo de retorno. Armazene o valor retornado em uma variável:
let number: i32 = function_name();O tipo de retorno deve corresponder ao tipo de dado da variável onde você armazena o valor retornado.
Experimente você mesmo
use std::io;
fn bigger(arg1: f64, arg2: f64) -> f64 {
// Complete a função
}
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 {
// Escreva seu código abaixo
}
}Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentals
4Operadores Parte 1
Operadores AritméticosOperador de MóduloAtalhos AritméticosOperadores de ComparaçãoComparação de Strings7Entrada e Saída Básica
Exibindo no ConsoleLendo a Entrada do UsuárioRevisão - Até 120Revisão - Verdadeiro ou Falso5Operadores Parte 2
Operadores Lógicos Parte 1Operadores Lógicos Parte 2Recapitulação - Lógica SimplesOperadores Lógicos Parte 33Variáveis Parte 2
Declaração de TipoConvenções de NomenclaturaInferência de TipoRecapitulação - Inicializar VariáveisConversão de Tipo9Laços
For sobre SériesLaço WhileBreakContinueLaços AninhadosRótulos de LoopLoop InfinitoRecapitulação - Entrada Dinâmica