Skip to content

[Rust 基础] 所有权

所有权规则

Rust 中的每一个值都有一个被称为其 所有者(owner)的变量。

值有且只有一个所有者。

当所有者(变量)离开作用域,这个值将被丢弃。

作用域

离开作用域,所有权消失,数据销毁

所有权转移

默认复制栈,不复制堆

引用

不可变引用,只读取  &str

可变引用,可读可写  &mut str

避免数据竞争:

在任意给定时间同一变量,要么 只能有一个可变引用,要么 只能有多个不可变引用。

避免悬垂引用(野指针/空指针)

引用必须总是有效。

slice

字符串字面值就是 slice

let s = "hello world"

slice类型的数据,你不能修改原始值s,修改原始值,我就报错。

所以 slice是不可变的引用