14、初识Rust – 模块化开发
目前学习的Rust开发都将代码写在main.rs文件中,这在开发小项目时没有什么,但当遇到大型项目时就会难以管理。所以需要使用Rust中的crate进行模块化开发。依靠crate,我们可以将代码分组到不同的目录和文件中,以提高可读性与重用性,即使代码块被外部代码使用,它还是作为一个内部实现的内容,不被外部代码使用,也就是私有性。
一个小小的个人站
目前学习的Rust开发都将代码写在main.rs文件中,这在开发小项目时没有什么,但当遇到大型项目时就会难以管理。所以需要使用Rust中的crate进行模块化开发。依靠crate,我们可以将代码分组到不同的目录和文件中,以提高可读性与重用性,即使代码块被外部代码使用,它还是作为一个内部实现的内容,不被外部代码使用,也就是私有性。
Rust除了match控制流外,还有一个简洁编写的if let 控制流。
fn main() { let a = Some(8); if let Some(value) = a { println!("{}",value) } } ---------------------------------------------------- Compiling master v0.1.0 (/Users/xxxxxx) Finished dev [unoptimized + debuginfo] target(s) in 1.06s Running `target/debug/master` 8
学过javascript或者lua这些编程语言的话,就会知道这些语言里都有switch这个方法。不过Rust中没有switch,当我们遇到需要使用switch的环境时,可以使用match来进行控制。 继续阅读 “12、初识Rust – match控制流”
上一篇文章学习了结构体,结构体支持多种数据类型配合 impl 有非常不俗的灵活性。但是结构体可以绑定的数据类型依然有限。当我们需要更好的灵活性时,枚举就是一个非常不错的解决方法 。 继续阅读 “11、初识Rust – 枚举与模式匹配”
Rust中的结构体和元组类似,它们都可以声明许多相关的值,每一部分也可以是不同的类型。但是,和元组不一样的是,结构体需要命名每个部分数据以便能清楚表明这个值的意义。由于这些值有名字,所以结构体比元组更加灵活,不需要依赖顺序或者索引去访问实例中的值。类似固定类型的JSON 继续阅读 “10、初识Rust – 结构体”
slice允许开发者使用集合中一段连续的元素序列,而不用引用整个集合。slice是一类引用,所以它没有所有权。
理解slice之前,我们先来尝试实现一个功能,提取字符串中某字符开始后的指定内容。 继续阅读 “9、初识Rust – slice类型”
在变量篇时,我们说过变量的所有权。当变量涉及到堆并且进行附值操作时,Rust只允许一个变量绑定该值。同样,当该值被函数调用时,变量所有权也会移交给调用函数,当函数执行完毕后如不做处理则会被自动释放。 继续阅读 “8、初识Rust – 引用与借用”
控制流是大部分编程语言的基本组成部分。Rust代码中最常见的控制程序执行流的结构就是 if 表达式和循环。 继续阅读 “7、初识Rust – 控制流”
函数在Rust中非常常见,例如非常重要的main 也是一个函数。
Rust 代码中的函数和变量名使用 snake case 规范风格。在 snake case 中,所有字母都是小写并使用下划线分隔单词。 继续阅读 “6、初识Rust – 函数”
Rust中,每一个值都有一个数据类型,以便明确数据的处理方式。Rust中存在两类数据类型子集,一种是标量(scalar),一种是复合(compound)。
Rust是一门静态类型语言,在编译时就必须明确所有变量的类型,根据值和其使用方式,编译器推断出想要使用的类型,例如 继续阅读 “5、初识Rust – 数据类型”