Menu
Coddy logo textTech

Acessando Campos de uma Struct

Parte da seção Logic & Flow 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 dentro dela. O Rust usa a notação de ponto para acessar campos individuais dentro de uma struct.

A sintaxe é direta: você escreve o nome da instância da struct, seguido por 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 número inteiro) e sua quilometragem (como um número 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 desta struct usando os valores de entrada, depois 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 (ex: Tesla Model 3)
  • Segunda linha: Ano como um número inteiro (ex: 2022)
  • Terceira linha: Quilometragem como um número inteiro (ex: 15000)

Saída:

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

Folha de consulta

Para acessar campos dentro de uma instância de struct, use a notação de ponto:

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

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

A sintaxe é: instance_name.field_name. Os valores acessados podem ser usados em expressões, atribuídos a variáveis ou passados para funções.

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 Logic & Flow