Menu
CoddyTech

回顾:创建一个书籍结构体

本课属于 Coddy Rust 学习旅程的“逻辑与流程”单元。第 26 课,共 66 课。

challenge icon

挑战

简单

你会收到 4 个输入:书名、作者姓名、出版年份(整数)和页数(整数)。定义一个 Book struct,包含 4 个字段:title 的类型为 String,author 的类型为 String,year 的类型为 i32,pages 的类型为 i32。使用输入值创建这个 struct 的实例,并打印书籍信息。

要求:

  • 定义一个 Book struct,包含以下字段:title: String、author: String、year: i32 和 pages: i32
  • 将第一个输入读取为书名
  • 将第二个输入读取为作者姓名
  • 读取第三个输入,并将其转换为 i32,作为出版年份
  • 读取第四个输入,并将其转换为 i32,作为页数
  • 使用这些值创建一个 Book struct 实例
  • 严格按照下方所示的格式打印书籍信息

输入:

  • 第一行:书名(例如,The Rust Programming Language)
  • 第二行:作者姓名(例如,Steve Klabnik)
  • 第三行:出版年份,整数(例如,2018)
  • 第四行:页数,整数(例如,552)

输出:

  • 第一行:Book: [title]
  • 第二行:Author: [author]
  • 第三行:Year: [year]
  • 第四行:Pages: [pages]

亲手试试

use std::io;

// TODO:在这里定义 Book 结构体,包含 title、author、year 和 pages 字段

fn main() {
    // 读取书名
    let mut title = String::new();
    io::stdin().read_line(&mut title).expect("Failed to read line");
    let title = title.trim().to_string();
    
    // 读取作者姓名
    let mut author = String::new();
    io::stdin().read_line(&mut author).expect("Failed to read line");
    let author = author.trim().to_string();
    
    // 读取出版年份
    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");
    
    // 读取页数
    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:使用输入值创建 Book 结构体的实例
    
    // TODO:按要求的格式输出图书信息
}

逻辑与流程中的所有课

自己练习: Rust 在线编译器