rustling学习随笔

cnblogs 2024-10-03 14:09:00 阅读 67

序言

rustling是一个关于rust的练习题的项目.可以帮助大家通过完成一个项目的方式练习rust的语法,我认为对于补充我rust现学现卖过程中的情况很有帮助.

下边是GPT对它的介绍:

Rustling 是专为那些想要学习 Rust 编程语言的人设计的一个交互式练习集合。无论你是编程新手还是有经验的开发者,Rustling 都能提供一个友好的环境来探索 Rust 的独特功能。

特点:

  • 互动性:通过实际编写代码并即时看到结果,你可以更好地理解 Rust 的工作原理。
  • 渐进式难度:练习按照难易程度排序,从基础到高级逐步引导你深入 Rust。
  • 涵盖广泛:练习覆盖了 Rust 的主要方面,包括所有权、借用、生命周期、错误处理等。
  • 社区支持:作为一个活跃的开源项目,Rustling 拥有一个热情的支持社区,你可以在这里找到帮助或贡献自己的力量。
  • 易于安装:只需几个简单的命令,就可以在你的机器上设置好 Rustling,并开始你的学习之旅。

structs2

<code>// structs2.rs

//

// Address all the TODOs to make the tests pass!

//

// Execute `rustlings hint structs2` or use the `hint` watch subcommand for a

// hint.

// I AM NOT DONE

#[derive(Debug)]

struct Order {

name: String,

year: u32,

made_by_phone: bool,

made_by_mobile: bool,

made_by_email: bool,

item_number: u32,

count: u32,

}

fn create_order_template() -> Order {

Order {

name: String::from("Bob"),

year: 2019,

made_by_phone: false,

made_by_mobile: false,

made_by_email: true,

item_number: 123,

count: 0,

}

}

#[cfg(test)]

mod tests {

use super::*;

#[test]

fn your_order() {

let order_template = create_order_template();

// TODO: Create your own order using the update syntax and template above!

// let your_order =

let your_order = Order {

name: String::from("Hacker in Rust"),

count: 1,

..order_template

};

assert_eq!(your_order.name, "Hacker in Rust");

assert_eq!(your_order.year, order_template.year);

assert_eq!(your_order.made_by_phone, order_template.made_by_phone);

assert_eq!(your_order.made_by_mobile, order_template.made_by_mobile);

assert_eq!(your_order.made_by_email, order_template.made_by_email);

assert_eq!(your_order.item_number, order_template.item_number);

assert_eq!(your_order.count, 1);

}

}

这里注意这个,这里有一个结构体更新语法的问题:

let your_order = Order {

name: String::from("Hacker in Rust"),

count: 1,

..order_template

};



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。