rust学习

rust 学习

所有权、借用

一个借用(引用),不能活得比出借者(引用的值)长

生命周期

人机合作典范

1
2
3
4
5
6
7
8
fn smaller<'a: 'b, 'b>(m: &'a i32, n: &'b i32) -> &'b i32 {...} // 生命周期约束,生命周期 'a 比生命周期 'b 活得长

fn foo(n: &'static i32) { ... } // 'static标注表示数据具有静态的生命周期

static V: i32 = 88; // 用 static 声明静态变量
foo(&V);


为什么要有生命周期呢? 因为有借用。

为什么要有借用呢? 因为值有所有权。

为什么要有所有权呢? 为了保障内存安全。

如何保障内存安全呢? 保证堆内存上的数据用完及时销毁,指针不会迷路。