rustling学习随笔

打印 上一主题 下一主题

主题 864|帖子 864|积分 2594

序言

rustling是一个关于rust的练习题的项目.可以资助大家通过完成一个项目标方式练习rust的语法,我认为对于补充我rust现学现卖过程中的环境很有资助.
下边是GPT对它的先容:
Rustling 是专为那些想要学习 Rust 编程语言的人设计的一个交互式练习集合。无论你是编程新手还是有经验的开发者,Rustling 都能提供一个友好的环境来探索 Rust 的独特功能。
特点:

  • 互动性: 通过实际编写代码并即时看到效果,你可以更好地明白 Rust 的工作原理。
  • 渐进式难度: 练习按照难易程度排序,从基础到高级逐步引导你深入 Rust。
  • 涵盖广泛: 练习覆盖了 Rust 的重要方面,包括所有权、借用、生命周期、错误处理等。
  • 社区支持: 作为一个活泼的开源项目,Rustling 拥有一个热情的支持社区,你可以在这里找到资助或贡献自己的力量。
  • 易于安装: 只需几个简单的下令,就可以在你的机器上设置好 Rustling,并开始你的学习之旅。
structs2
  1. // structs2.rs
  2. //
  3. // Address all the TODOs to make the tests pass!
  4. //
  5. // Execute `rustlings hint structs2` or use the `hint` watch subcommand for a
  6. // hint.
  7. // I AM NOT DONE
  8. #[derive(Debug)]
  9. struct Order {
  10.     name: String,
  11.     year: u32,
  12.     made_by_phone: bool,
  13.     made_by_mobile: bool,
  14.     made_by_email: bool,
  15.     item_number: u32,
  16.     count: u32,
  17. }
  18. fn create_order_template() -> Order {
  19.     Order {
  20.         name: String::from("Bob"),
  21.         year: 2019,
  22.         made_by_phone: false,
  23.         made_by_mobile: false,
  24.         made_by_email: true,
  25.         item_number: 123,
  26.         count: 0,
  27.     }
  28. }
  29. #[cfg(test)]
  30. mod tests {
  31.     use super::*;
  32.     #[test]
  33.     fn your_order() {
  34.         let order_template = create_order_template();
  35.         // TODO: Create your own order using the update syntax and template above!
  36.         // let your_order =
  37.         let your_order = Order {
  38.             name: String::from("Hacker in Rust"),
  39.             count: 1,
  40.             ..order_template
  41.         };
  42.         assert_eq!(your_order.name, "Hacker in Rust");
  43.         assert_eq!(your_order.year, order_template.year);
  44.         assert_eq!(your_order.made_by_phone, order_template.made_by_phone);
  45.         assert_eq!(your_order.made_by_mobile, order_template.made_by_mobile);
  46.         assert_eq!(your_order.made_by_email, order_template.made_by_email);
  47.         assert_eq!(your_order.item_number, order_template.item_number);
  48.         assert_eq!(your_order.count, 1);
  49.     }
  50. }
复制代码
这里注意这个,这里有一个结构体更新语法的问题:
  1. let your_order = Order {
  2.             name: String::from("Hacker in Rust"),
  3.             count: 1,
  4.             ..order_template
  5.         };
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

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

本版积分规则

用多少眼泪才能让你相信

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表