所有权规则

  • Rust中的每一个值都有一个被称为所有者的变量
  • 值在任一时刻有且仅有一个所有者
  • 当所有者(变量)离开作用域,这个值会被丢弃


赋值

**Copy **trait用来标识存储在栈上的类型,它们可以被复制

  • 所有的整型:i32
  • 所有的浮点型:f64
  • 布尔类型:bool
  • 字符类型:'a'
  • 元组(元组内的类型是可Copy的)

**Drop **trait用来标识存储在堆上的类型,定义了释放它们内存的方法
如果想对堆上的类型进行复制,需要调用**clone**方法

引用/借用

引用

一个引用的作用域从声明的地方开始一直持续到最后一次使用为止。

字符串切片也是一种引用

字符串切片的类型是&str

字符串字面值就是 slice

  • 只不过&s[0..len]是对String的切片,数据放在
  • 字符串字面值是对程序内的特定位置的字符串进行切片,数据存放在二进制程序

数组/vector的切片

类型是&[i32]