rust程序设计(5)结构体相关练习题| 附带解答

打印 上一主题 下一主题

主题 934|帖子 934|积分 2802

题目


  • 基础结构体练习

    • 创建一个名为Person的结构体,包含name(字符串类型)和age(整数类型)两个字段。
    • 写一个函数,接收一个Person实例作为参数,并打印出这个人的名字和年龄。

  • 结构体方法练习

    • 为Person结构体添加一个方法birthday,当调用时,它将这个人的年龄增加1。
    • 创建一个Person实例,并使用birthday方法为其庆生,然后打印出新的年龄。

  • 结构体关联函数练习

    • 为Person结构体添加一个关联函数(即静态方法)new,它接收名字和年龄,并返回一个Person实例。
    • 使用Person::new来创建一个新的Person实例。

  • 带有枚举的结构体练习

    • 创建一个名为Vehicle的结构体,其中包含一个model(字符串类型)和一个名为vehicle_type的枚举(枚举值可以是Car, Truck, Motorcycle等)。
    • 实现一个显示Vehicle信息的函数,包括它的型号和类型。

  • 结构体更新语法练习

    • 创建两个Person实例。
    • 使用结构体更新语法,创建一个新的Person实例,它从第一个实例继承名字,从第二个实例继承年龄。

  • 元组结构体练习

    • 创建一个名为Color的元组结构体,它有三个u8类型的字段,代表红、绿、蓝色值。
    • 创建一个Color实例,并打印出其各个颜色分量。

解答


  • 基础结构体练习
    1. struct Person {
    2.     name: String,
    3.     age: u32,
    4. }
    5. fn print_person(person: &Person) {
    6.     println!("Name: {}, Age: {}", person.name, person.age);
    7. }
    复制代码
  • 结构体方法练习
    1. impl Person {
    2.     fn birthday(&mut self) {
    3.         self.age += 1;
    4.     }
    5. }
    6. // 使用示例
    7. // let mut person = Person { name: String::from("Alice"), age: 30 };
    8. // person.birthday();
    9. // println!("New age: {}", person.age);
    复制代码
  • 结构体关联函数练习
    1. impl Person {
    2.     fn new(name: String, age: u32) -> Person {
    3.         Person { name, age }
    4.     }
    5. }
    6. // 使用示例
    7. // let person = Person::new(String::from("Bob"), 40);
    复制代码
  • 带有枚举的结构体练习
    1. enum VehicleType {
    2.     Car,
    3.     Truck,
    4.     Motorcycle,
    5. }
    6. struct Vehicle {
    7.     model: String,
    8.     vehicle_type: VehicleType,
    9. }
    10. fn print_vehicle_info(vehicle: &Vehicle) {
    11.     let type_str = match vehicle.vehicle_type {
    12.         VehicleType::Car => "Car",
    13.         VehicleType::Truck => "Truck",
    14.         VehicleType::Motorcycle => "Motorcycle",
    15.     };
    16.     println!("Model: {}, Type: {}", vehicle.model, type_str);
    17. }
    复制代码
  • 结构体更新语法练习
    1. // let person1 = Person { name: String::from("Chris"), age: 25 };
    2. // let person2 = Person { name: String::from("Pat"), age: 30 };
    3. // let person3 = Person {
    4. //     name: person1.name,
    5. //     ..person2
    6. // };
    复制代码
  • 元组结构体练习
    1. struct Color(u8, u8, u8);
    2. // 使用示例
    3. // let color = Color(255, 0, 0);
    4. // println!("Red: {}, Green: {}, Blue: {}", color.0, color.1, color.2);
    复制代码

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

去皮卡多

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表