Menu
Coddy logo textTech

Tuple Structs

Parte da seção Lógica & Fluxo do Journey de Rust da Coddy. Lição 25 de 66.

Enquanto as structs regulares usam campos nomeados, Rust oferece outro tipo chamado structs tupla. Elas fornecem uma maneira mais concisa de criar tipos personalizados quando você não precisa nomear cada campo individualmente.

Uma struct tupla combina os benefícios de criar um novo tipo com a simplicidade de uma tupla. Você a define usando a palavra-chave struct, seguida pelo nome do tipo e pelos tipos dos campos entre parênteses:

struct Color(i32, i32, i32);

Isso cria um tipo Color que contém três valores i32, representando valores de cores RGB. Ao contrário de structs comuns, você não especifica nomes de campos - você acessa os valores por sua posição, assim como em tuplas.

Para criar uma instância de uma struct tupla, você fornece valores entre parênteses:

let red = Color(255, 0, 0);

Você pode acessar campos individuais usando a notação de ponto com o índice do campo: red.0 fornece o primeiro valor, red.1 o segundo, e assim por diante.

challenge icon

Desafio

Fácil

Você receberá três entradas: um valor de vermelho (como um número inteiro), um valor de verde (como um número inteiro) e um valor de azul (como um número inteiro). Defina uma struct de tupla Color que armazene três valores i32 representando componentes de cor RGB. Crie uma instância dessa struct de tupla usando os valores de entrada e, em seguida, acesse e imprima cada componente de cor usando a notação de índice.

Requisitos:

  • Defina uma struct de tupla Color com três campos i32
  • Leia a primeira entrada e converta-a para i32 como o valor de vermelho
  • Leia a segunda entrada e converta-a para i32 como o valor de verde
  • Leia a terceira entrada e converta-a para i32 como o valor de azul
  • Crie uma instância da struct de tupla Color com esses valores
  • Acesse cada campo usando a notação de ponto com índices (0, 1, 2) e imprima as informações de cor no formato exato mostrado abaixo

Entrada:

  • Primeira linha: valor de vermelho como um número inteiro (por exemplo, 255)
  • Segunda linha: valor de verde como um número inteiro (por exemplo, 128)
  • Terceira linha: valor de azul como um número inteiro (por exemplo, 0)

Saída:

  • Primeira linha: Red: [red_value]
  • Segunda linha: Green: [green_value]
  • Terceira linha: Blue: [blue_value]

Experimente você mesmo

use std::io;

// TODO: Defina sua struct de tupla Color aqui

fn main() {
    // Ler o valor de vermelho
    let mut red_input = String::new();
    io::stdin().read_line(&mut red_input).expect("Failed to read line");
    let red: i32 = red_input.trim().parse().expect("Invalid input");
    
    // Ler o valor de verde
    let mut green_input = String::new();
    io::stdin().read_line(&mut green_input).expect("Failed to read line");
    let green: i32 = green_input.trim().parse().expect("Invalid input");
    
    // Ler o valor de azul
    let mut blue_input = String::new();
    io::stdin().read_line(&mut blue_input).expect("Failed to read line");
    let blue: i32 = blue_input.trim().parse().expect("Invalid input");
    
    // TODO: Crie uma instância da struct de tupla Color usando os valores de entrada
    
    // TODO: Acesse e imprima cada componente de cor usando a notação de índice
    // Formato: Red: [value], Green: [value], Blue: [value]
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica & Fluxo

Pratique por conta própria: Compilador de Rust online