Recapitulação - Criando uma Struct Book
Parte da seção Logic & Flow do Journey de Rust da Coddy — lição 26 de 66.
Desafio
FácilVocê receberá quatro entradas: o título de um livro, o nome de um autor, um ano de publicação (como um número inteiro) e um número de páginas (como um número inteiro). Defina uma struct Book com quatro campos: title do tipo String, author do tipo String, year do tipo i32 e pages do tipo i32. Crie uma instância desta struct usando os valores de entrada e imprima as informações do livro.
Requisitos:
- Defina uma struct
Bookcom os campos:title: String,author: String,year: i32epages: i32 - Leia a primeira entrada como o título do livro
- Leia a segunda entrada como o nome do autor
- Leia a terceira entrada e converta-a para
i32para o ano de publicação - Leia a quarta entrada e converta-a para
i32para o número de páginas - Crie uma instância da struct
Bookcom esses valores - Imprima as informações do livro no formato exato mostrado abaixo
Entrada:
- Primeira linha: Título do livro (ex:
The Rust Programming Language) - Segunda linha: Nome do autor (ex:
Steve Klabnik) - Terceira linha: Ano de publicação como um número inteiro (ex:
2018) - Quarta linha: Número de páginas como um número inteiro (ex:
552)
Saída:
- Primeira linha:
Book: [title] - Segunda linha:
Author: [author] - Terceira linha:
Year: [year] - Quarta linha:
Pages: [pages]
Experimente você mesmo
use std::io;
// TODO: Defina a struct Book aqui com os campos: title, author, year e pages
fn main() {
// Ler o título do livro
let mut title = String::new();
io::stdin().read_line(&mut title).expect("Failed to read line");
let title = title.trim().to_string();
// Ler o nome do autor
let mut author = String::new();
io::stdin().read_line(&mut author).expect("Failed to read line");
let author = author.trim().to_string();
// Ler o ano de publicação
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("Failed to parse year");
// Ler o número de páginas
let mut pages_input = String::new();
io::stdin().read_line(&mut pages_input).expect("Failed to read line");
let pages: i32 = pages_input.trim().parse().expect("Failed to parse pages");
// TODO: Crie uma instância da struct Book usando os valores de entrada
// TODO: Imprima as informações do livro no formato exigido
}Todas as lições de Logic & Flow
1Fluxo de Controle Avançado
A Expressão 'match'Correspondência de Múltiplos ValoresCorrespondência de IntervalosA Expressão 'if let'Loops como ExpressõesRecapitulação - Parser de Comandos Simples4Agrupando Dados com Structs
O que é uma Struct?Visão Geral de StructsAcessando Campos de uma StructStructs MutáveisStructs como Parâmetros de FunçãoTuple StructsRecapitulação - Criando uma Struct Book2Introdução a Vetores
O que é um Vetor?Criando um VetorAdicionando Elementos com pushAcessando Elementos do VetorIterando sobre um VetorIteração MutávelRemovendo ElementosRecapitulação - Rastreador de Pontuação Básico5Pares Chave-Valor com Hash Maps
O que é um Hash Map?Criando um Hash MapInserindo Pares Chave-ValorAcessando ValoresIterando sobre um Hash MapAtualizando um ValorRemovendo um ParRecapitulação - Contador de Palavras8Projeto: Inventário Simples de Itens
Configuração do ProjetoAdicionando um ItemVerificando o EstoqueVendendo um ItemJuntando tudo3Lista de Tarefas via Linha de Comando
Configuração do ProjetoAdicionando uma TarefaVisualizando Todas as TarefasRemovendo uma TarefaCódigo Final