#study #random #rust学习项目0

bin+lib rust_study0

Rust的第一个学习项目

2个版本

0.1.1 2022年2月24日
0.1.0 2022年2月24日

#13 in #study

MIT 许可证

20KB
507

rust_study0

介绍

Rust学习项目0

2021-12-14

第一个例子,猜数字:

  1. 使用rand获取一个100以内的随机自然数;
  2. 要求用户输入猜测值;
  3. 反馈太小或太大的提示,直至用户猜到之前产生的随机数,然后退出;
  4. 若输入不符合要求,打印提示并重试。

2021-12-16

第二个例子,测试变量和常量。

2021-12-17

第三个例子,测试各种基本类型。

2021-12-25

第四个例子,测试函数,将第一个猜数字的例子封装成为函数,并增加两个参数

  1. show_answer,布尔类型,是否显示答案;
  2. max_cnti32类型,最大尝试次数,正数有效。

并增加布尔类型的返回值,代表猜数字的结果。

2022-02-19

第五个例子,测试所有权函数,从所有权上就可以看出,Rust其实就是强制性的要求所有变量都按照现代C++所定义的RAII来使用,可以说Rust就是语言层面上强制性的C++最佳实践。

其实ownership是个强制性的东西,并没有什么合适的测试代码,因为不符合所有权要求的代码根本编译不通过,函数test_ownership也仅仅是测试了一下String和str(相当于Slice)类型。

第六个例子,测试结构体,基本上和Golang一样,比C++多了匿名结构体和空结构体,参见函数test_struct

结构体高级用法(面向对象)

  1. 增加调试信息#[derive(Debug)]
  2. 增加方法impl <StructName> { fn <MethodName>(&[mut ]self[, ...]) [-> ...] {} }
  3. 增加静态方法impl <StructName> { fn <MethodName>(...) [-> ...] {} }

2022-02-21

第七个例子,测试枚举,Rust的枚举相比于C++强大了很多,枚举值可以携带对应的附加信息,详见test_enum函数。

2022-02-22

第8-10个例子,测试向量,字符串和哈希表,详见test_vectortest_stringtest_hash函数。

第11个例子,测试模板函数和接口,详见test_generic函数。

第12个例子,获取并打印输入参数,详见test_arguments函数。

依赖关系

~315KB