Múltiplos Valores de Retorno
Parte da seção Fundamentals do Journey de Rust da Coddy — lição 52 de 75.
Em Rust, uma função pode retornar múltiplos valores usando uma tupla como o tipo de retorno. Uma tupla é um grupo de diferentes valores agrupados em uma única unidade.
Por exemplo:
fn get_coordinates() -> (i32, i32) {
let x = 10;
let y = 20;
(x, y) // Retorna uma tupla
}E é assim que se chama a função:
let (x, y) = get_coordinates();
// Desestrutura a tupla
// em variáveis separadas
println!("{}, {}", x, y);Você pode retornar quantos valores precisar adicionando mais elementos à tupla. Por exemplo:
fn get_details() -> (String, i32, f64) {
let name = String::from("Alice");
let age = 30;
let score = 95.5;
(name, age, score)
// Retorna uma tupla com três valores
}E é assim que se chama a função:
let (name, age, score) = get_details();
println!("{}, {}, {}", name, age, score);Desafio
FácilCrie uma função chamada get_user_info que retorna uma tupla contendo o nome, a idade e o endereço de e-mail de um usuário. A função deve ter a seguinte assinatura:
fn get_user_info() -> (String, i32, String)Dentro da função, crie as seguintes variáveis:
name: umaStringinicializada como "Bob"age: umi32inicializado como 25email: umaStringinicializada como "bob@example.com"
Retorne esses três valores como uma tupla.
Na função main, chame get_user_info e desestruture a tupla retornada em variáveis separadas chamadas name, age e email. Em seguida, imprima esses valores no console usando println! no seguinte formato:
Name: [name], Age: [age], Email: [email]Folha de consulta
As funções podem retornar múltiplos valores usando tuplas como o tipo de retorno:
fn get_coordinates() -> (i32, i32) {
let x = 10;
let y = 20;
(x, y) // Retorna uma tupla
}Chame a função e desestruture a tupla em variáveis separadas:
let (x, y) = get_coordinates();
println!("{}, {}", x, y);Você pode retornar múltiplos valores de tipos diferentes:
fn get_details() -> (String, i32, f64) {
let name = String::from("Alice");
let age = 30;
let score = 95.5;
(name, age, score)
}let (name, age, score) = get_details();
println!("{}, {}, {}", name, age, score);Experimente você mesmo
fn get_user_info() -> (String, i32, String) {
// Crie as variáveis de nome, idade e e-mail aqui
// Retorne a tupla
}
fn main() {
// Chame get_user_info e desestruture a tupla retornada
// Imprima os valores
}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 311Funções
Declarando FunçõesParâmetros e ArgumentosValores de RetornoMúltiplos Valores de RetornoRecapitulação - Função SigmaRecapitulação - Função de Validação3Variá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