进阶学习
所有权机制的66个场景
| 角色/方面 | 所有权 | 所有权移动 | 作用域 | 生存期 | 丢弃 | 复制 |
|---|---|---|---|---|---|---|
| 变量 | 变量关于所有权场景规则 | 变量关于所有权移动场景规则 | 变量关于作用域场景规则 | 变量关于生存期场景规则 | 变量关于丢弃场景规则 | 变量关于复制场景规则 |
| 栈上值 | 栈上值关于所有权场景规则 | 栈上值关于所有权移动场景规则 | 栈上值关于作用域场景规则(不适用,因为栈上值本身没有作用域) | 栈上值关于生存期场景规则 | 栈上值关于丢弃场景规则 | 栈上值关于复制场景规则 |
| 堆上值 | 堆上值关于所有权场景规则 | 堆上值关于所有权移动场景规则 | 堆上值关于作用域场景规则(不适用,因为堆上值本身没有作用域) | 堆上值关于生存期场景规则 | 堆上值关于丢弃场景规则 | 堆上值关于复制场景规则 |
| 不可变引用 | 不可变引用关于所有权场景规则 | 不可变引用关于所有权移动场景规则 | 不可变引用关于作用域场景规则 | 不可变引用关于生存期场景规则 | 不可变引用关于丢弃场景规则 | 不可变引用关于复制场景规则 |
| 可变引用 | 可变引用关于所有权场景规则 | 可变引用关于所有权移动场景规则 | 可变引用关于作用域场景规则 | 可变引用关于生存期场景规则 | 可变引用关于丢弃场景规则 | 可变引用关于复制场景规则 |
Box<T> | Box<T>关于所有权场景规则 | Box<T>关于所有权移动场景规则 | Box<T>关于作用域场景规则 | Box<T>关于生存期场景规则 | Box<T>关于丢弃场景规则 | Box<T>关于复制场景规则 |
Rc<T> | Rc<T>关于所有权场景规则 | Rc<T>关于所有权移动场景规则 | Rc<T>关于作用域场景规则 | Rc<T>关于生存期场景规则 | Rc<T>关于丢弃场景规则 | Rc<T>关于复制场景规则 |
RefCell<T> | RefCell<T>关于所有权场景规则 | RefCell<T>关于所有权移动场景规则 | RefCell<T>关于作用域场景规则 | RefCell<T>关于生存期场景规则 | RefCell<T>关于丢弃场景规则 | RefCell<T>关于复制场景规则 |
Arc<T> | Arc<T>关于所有权场景规则 | Arc<T>关于所有权移动场景规则 | Arc<T>关于作用域场景规则 | Arc<T>关于生存期场景规则 | Arc<T>关于丢弃场景规则 | Arc<T>关于复制场景规则 |
Mutex<T> | Mutex<T>关于所有权场景规则 | Mutex<T>关于所有权移动场景规则 | Mutex<T>关于作用域场景规则 | Mutex<T>关于生存期场景规则 | Mutex<T>关于丢弃场景规则 | Mutex<T>关于复制场景规则 |
RwLock<T> | RwLock<T>关于所有权场景规则 | RwLock<T>关于所有权移动场景规则 | RwLock<T>关于作用域场景规则 | RwLock<T>关于生存期场景规则 | RwLock<T>关于丢弃场景规则 | RwLock<T>关于复制场景规则 |