存量
在Auto语言中,有四种类型的存量:
- 定量(
let) - 变量(
mut) - 常量(
const) - 幻量(
var)
我们以前把这些量都称为“变量”,显然是不合适的, 所以才会出现类似于“不可变变量”、“可变变量”这种自相矛盾的表述。 因此我把他们统一称为“存量”,即对应于存储在内存中的某段数据的量。
存量的值传递
我总结了一下各类语言中值传递的方式,发现一共可以归类为4种:
- 拷贝(
copy) - 引用(
ref) - 转移(
move) - 指针(
ptr)
他们效果、影响各不相同,因此需要区分。
举例:
rust
let a = 1 // 定量
let b = copy a // 拷贝
let c = a // 注意:默认拷贝
let d = ref a // 引用
let e = ptr a // 指针
let f = move a // 转移rust
mut a = [0..999] // 变量,且类型为数组
let b = ref a // 引用
let c = a // 注意:默认引用
let d = move a // 转移
let e = ptr a // 指针
let f = move a // 转移