Appearance
methods就是第一个参数是self的函数 比如:
rust
fn foo(self, arg2: Type2) -> ReturnType {
// body
}
self有三种形式,主要是有关所有权的:
self
- Value 完全的所有权&mut self
- mutable reference 可修改引用&self
- shared reference 共享引用
- 对于拥有所有权的变量,你可以做: 移动所有权,借出所有权,销毁,修改,访问内容
- 对于可修改引用
- 首先没有所有权,只是引用
- 可修改,可以访问内容,但是不可移动所有权,借出所有权,销毁 (在链表中尤其要注意这个事情)
- 第二点一句话概括,就是不能让这个变量处于无效状态
- 对于共享引用(shared reference)
- 只能访问内容
- 其他所有权限都没有
- 可以同时存在多个共享引用,只能同时存在一个可修改引用(mutable reference)
- 但是对于共享引用,我们有手段绕开这个限制,对其进行修改,所以共享引用,不称之为不可修改引用( immutable references)