开始学习RUST,为了督促自己,每天记录学习心得,大家监督。
一、关于安装
终端里输入
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
下载后运行第一个程序
cargo new --bin helloworld
进入helloworld文件夹,运行
cargo build
cargo run
二、关于符号
1、注释符采用//
2、转义符 \ 用例
三、关于数据
1、结构体也是一种复合类型,它由若干字段组成,每个字段的类型可以不一样。Rust 中使用 struct 关键字来定义结构体。比如下面的代码就定义了一个 User 类型。
2、元组是一个固定(元素)长度的列表,每个元素类型可以不一样。用小括号括起来,元素之间用逗号隔开。
3、Rust 中使用 enum 关键字定义枚举类型。枚举类型也是一种复合类型。但是与结构体不同,结构体类型是里面的所有字段(所有类型)同时起作用,来产生一个具体的实例,而枚举类型是其中的一个变体起作用,来产生一个具体实例,这点区别可以细细品味。学术上,通常把枚举叫作和类型(sum type),把结构体叫作积类型(product type)。
四、数据流
1、Rust 中使用 if else 来构造分支。
fn main() {
let x = 1;
// 在这里,if else 返回了值
let y = if x == 0 {
// 代码块结尾最后一句不加分号,表示把值返回回去
100
} else {
// 代码块结尾最后一句不加分号,表示把值返回回去
101
};
println!("y is {}", y);
}
2、Rust 中有三种循环语句,分别是 loop、while、for。
3、对于循环的场景,Rust 还提供了一个便捷的语法来生成遍历区间: ..(两个点)。
五、函数和模块
1、函数。函数定义时的参数叫作形式参数(形参),函数调用时传入的参数值叫做实际参数(实参)。函数的调用要与函数的签名(函数名、参数个数、参数类型、参数顺序、返回类型)一致,也就是实参和形参要匹配。
2、闭包(Closure)。闭包是另一种风格的函数。它使用两个竖线符号 || 定义,而不是用 fn () 来定义。你可以看下面的形式对比。
六、结构
backyard
├── Cargo.lock
├── Cargo.toml
└── src
├── garden // 子目录
│ └── vegetables.rs
├── garden.rs // 与子目录同名的.rs文件,表示这个模块的入口
└── main.rs
七、要点
是否能在编译期计算出某个数据类型在运行过程中占用的内存空间的大小