序言
rustling是一个关于rust的练习题的项目.可以资助大家通过完成一个项目标方式练习rust的语法,我认为对于补充我rust现学现卖过程中的环境很有资助.
下边是GPT对它的先容:
Rustling 是专为那些想要学习 Rust 编程语言的人设计的一个交互式练习集合。无论你是编程新手还是有经验的开发者,Rustling 都能提供一个友好的环境来探索 Rust 的独特功能。
特点:
- 互动性: 通过实际编写代码并即时看到效果,你可以更好地明白 Rust 的工作原理。
- 渐进式难度: 练习按照难易程度排序,从基础到高级逐步引导你深入 Rust。
- 涵盖广泛: 练习覆盖了 Rust 的重要方面,包括所有权、借用、生命周期、错误处理等。
- 社区支持: 作为一个活泼的开源项目,Rustling 拥有一个热情的支持社区,你可以在这里找到资助或贡献自己的力量。
- 易于安装: 只需几个简单的下令,就可以在你的机器上设置好 Rustling,并开始你的学习之旅。
structs2
- // 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
- };
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |