Menu
Coddy logo textTech

Acessando Campos de uma Struct

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

Depois de criar uma instância de struct, você precisa de uma maneira de recuperar os valores armazenados nela. Rust usa a notação de ponto para acessar campos individuais dentro de uma struct.

A sintaxe é simples: você escreve o nome da instância da struct, seguido de um ponto e, em seguida, o nome do campo que deseja acessar:

let product = Product {
    name: String::from("Laptop"),
    price: 999,
};

println!("Product: {}", product.name);
println!("Price: ${}", product.price);

Esta notação de ponto funciona exatamente como o acesso a propriedades em outras linguagens de programação. Você pode usar os valores acessados em expressões, atribuí-los a variáveis ou passá-los para funções — eles se comportam exatamente como qualquer outro valor desse tipo.

challenge icon

Desafio

Fácil

Você receberá três entradas: o nome do modelo de um carro, o ano do carro (como um inteiro) e sua quilometragem (como um inteiro). Defina uma struct Car com três campos: model do tipo String, year do tipo i32 e mileage do tipo i32. Crie uma instância dessa struct usando os valores de entrada e, em seguida, acesse e imprima cada campo.

Requisitos:

  • Defina uma struct Car com os campos: model: String, year: i32 e mileage: i32
  • Leia a primeira entrada como o modelo do carro
  • Leia a segunda entrada e converta-a para i32 para o ano
  • Leia a terceira entrada e converta-a para i32 para a quilometragem
  • Crie uma instância da struct Car com esses valores
  • Use a notação de ponto para acessar cada campo e imprimir as informações do carro no formato exato mostrado abaixo

Entrada:

  • Primeira linha: Modelo do carro (por exemplo, Tesla Model 3)
  • Segunda linha: Ano como um inteiro (por exemplo, 2022)
  • Terceira linha: Quilometragem como um inteiro (por exemplo, 15000)

Saída:

  • Primeira linha: Car: [model]
  • Segunda linha: Year: [year]
  • Terceira linha: Mileage: [mileage] km

Experimente você mesmo

use std::io;

// TODO: Defina a struct Car aqui com os campos: model, year, e mileage

fn main() {
    // Lê o modelo do carro
    let mut model = String::new();
    io::stdin().read_line(&mut model).expect("Failed to read line");
    let model = model.trim().to_string();
    
    // Lê o ano
    let mut year_input = String::new();
    io::stdin().read_line(&mut year_input).expect("Failed to read line");
    let year: i32 = year_input.trim().parse().expect("Invalid year");
    
    // Lê a quilometragem
    let mut mileage_input = String::new();
    io::stdin().read_line(&mut mileage_input).expect("Failed to read line");
    let mileage: i32 = mileage_input.trim().parse().expect("Invalid mileage");
    
    // TODO: Crie uma instância da struct Car usando os valores de entrada
    
    // TODO: Acesse e imprima cada campo no formato exigido
    // Car: [model]
    // Year: [year]
    // Mileage: [mileage] km
}
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