汇编语言中,引用就是内存的地址,是一个数字类型。
C 语言中,引用是通过指针实现的,而其类型是和其指向的类型有关的一种类型。
在函数式语言中,没有显式的引用,函数的参数默认是传递值,无法传递引用,这在并发类语言中尤其明确。而这样设计的初衷是为了防止程序员不小心修改了共享的变量,而造成并发行为发生不可预料的后果。
我认为,引用应当作为一种独立的类型,分离出来。即使是支持并发的语言,也不要强制禁止传递引用,禁止对值的修改,因为这是程序员的权利。
ref = *value ref_value = &ref
为了避免影响编译器对内存的调度,引用不能当成一种数字类型,也不能和引用所指向的类型相关。 type(ref) == 'ref'
引用可以复制,可以作为参数传递,在对引用计算的时候,会自动解引用,
other_ref = ref accept_ref_function(ref_var) ref_var.type() // equal &ref_var.type();
而函数的参数传递,传递的是值,而不是引用。如果想传递引用,就显式的定义:
var_ref = *var accept_ref_func(var_ref)
语言设计应当尽可能的把潜规则显式的表达出来。