彙編語言中,引用就是內存的地址,是一個數字類型。程序員
C 語言中,引用是經過指針實現的,而其類型是和其指向的類型有關的一種類型。併發
在函數式語言中,沒有顯式的引用,函數的參數默認是傳遞值,沒法傳遞引用,這在併發類語言中尤爲明確。而這樣設計的初衷是爲了防止程序員不當心修改了共享的變量,而形成併發行爲發生不可預料的後果。函數
我認爲,引用應看成爲一種獨立的類型,分離出來。即便是支持併發的語言,也不要強制禁止傳遞引用,禁止對值的修改,由於這是程序員的權利。設計
ref = *value ref_value = &ref
爲了不影響編譯器對內存的調度,引用不能當成一種數字類型,也不能和引用所指向的類型相關。 type(ref) == 'ref'指針
引用能夠複製,能夠做爲參數傳遞,在對引用計算的時候,會自動解引用,code
other_ref = ref accept_ref_function(ref_var) ref_var.type() // equal &ref_var.type();
而函數的參數傳遞,傳遞的是值,而不是引用。若是想傳遞引用,就顯式的定義:內存
var_ref = *var accept_ref_func(var_ref)
語言設計應當儘量的把潛規則顯式的表達出來。編譯器