所有权规则
Rust
中的每一个值都有一个被称为所有者的变量- 值在任一时刻有且仅有一个所有者
- 当所有者(变量)离开作用域,这个值会被丢弃
赋值
**Copy **trait
用来标识存储在栈上的类型,它们可以被复制
- 所有的整型:
i32
- 所有的浮点型:
f64
- 布尔类型:
bool
- 字符类型:
'a'
- 元组(元组内的类型是可
Copy
的)
**Drop **trait
用来标识存储在堆上的类型,定义了释放它们内存的方法
如果想对堆上的类型进行复制,需要调用**clone**
方法
引用/借用
引用
一个引用的作用域从声明的地方开始一直持续到最后一次使用为止。
字符串切片也是一种引用
字符串切片的类型是&str
字符串字面值就是 slice
- 只不过
&s[0..len]
是对String
的切片,数据放在堆中 - 字符串字面值是对程序内的特定位置的字符串进行切片,数据存放在二进制程序中
数组/vector的切片
类型是&[i32]