一些编程语言,例如Haskell,不区分值传递和引用传递。编译器可以通过启发式算法近似选择最有效的调用约定。例如,对于Linux x64 ABI,一个启发式算法是:如果参数大小大于16字节,则将指针传递到堆栈中;否则在寄存器中传递值。
在Rust中保留传值和传引用(当然不能改变)的两个概念并强制用户进行选择,有什么优点?
是不是情况这样:如果发现一个值被修改,传值就成了传引用 + 拷贝的语法糖?
在Rust中保留传值和传引用(当然不能改变)的两个概念并强制用户进行选择,有什么优点?
是不是情况这样:如果发现一个值被修改,传值就成了传引用 + 拷贝的语法糖?