复合类型
- tuple
- array
所有权
所有权是一个非常重要的概念,它让rust无需垃圾回收即实现内存安全,这里推荐《rust死灵书》在Rust中,值放在栈上还是堆上,会影响对应的行为。内存在拥有它的变量离开作用域后就被自动释放。Rust会在结尾的
}
自动调用drop()方法
概念
move
clone
referencing
borrowing
一些复合结构
slice
struct
tuple_structs
enumerations
option
match
包管理学习
- Packages
- Crates
- Modules
- path
常见集合
fn main() {
let mut v = vec![1,2,3,4,5];
let first = &v[0];
v.push(6);
println!("{}",first);
}
这个会报错,为什么第一个元素的引用会关心 vector 结尾的变化?不能这么做的原因是由于 vector 的工作方式:在 vector 的结尾增加新元素时,在没有足够空间将所有所有元素依次相邻存放的情况下,可能会要求分配新内存并将老的元素拷贝到新的空间中。这时,第一个元素的引用就指向了被释放的内存。借用规则阻止程序陷入这种状况。