整理来自Rust中文前几章节,到
包、Crates与模块
.已经看了第二遍,知识点还是容易忘记,整理记录一下,方便查阅.
Rust中文
x.0;
元祖
let a: [i32; 5] = [1, 2, 3, 4, 5];
fn关键字
表达式
和语句 表达式用于返回值,无冒号
因为 if 是一个表达式,我们可以在 let 语句的右侧使用它
栈中的所有数据都必须占用已知且固定的大小
已实现COPY
字符串字面值不可变性在栈上
String存在堆上,因为大小未知
let x = 5;
let y = x;
println!("{}",x)
栈上数据没问题,实现了copy trait
let s1 = String::from("hello");
let s2 = s1;
println!("{}",s1)
堆上数据报错,s1被move给了s2
Rust 永远也不会自动创建数据的 “深拷贝" clone
Drop trai和Copy trait不可同时出现
元组,当且仅当其包含的类型也都是 Copy 的时候。比如,(i32, i32) 是 Copy 的,但 (i32, Str