[Rust 基础] 所有权
所有权规则
Rust 中的每一个值都有一个被称为其 所有者(owner)的变量。
值有且只有一个所有者。
当所有者(变量)离开作用域,这个值将被丢弃。
作用域
离开作用域,所有权消失,数据销毁
所有权转移
默认复制栈,不复制堆
引用
不可变引用,只读取 &str
可变引用,可读可写 &mut str
避免数据竞争:
在任意给定时间同一变量,要么 只能有一个可变引用,要么 只能有多个不可变引用。
避免悬垂引用(野指针/空指针)
引用必须总是有效。
slice
字符串字面值就是 slice
let s = "hello world"
slice类型的数据,你不能修改原始值s,修改原始值,我就报错。
所以 slice是不可变的引用