著名的《CTM》中写有6种参数传递方式,比较有趣。
1、Call by reference --传对象标识符
2、Call by varible --是1的特例,传变量标识符
3、Call by value-result --是2的变种,像PL/SQ和PascalL中的inout参数
4、Call by value --与Java中的同义
5、Call by name --与Scala中的 by-name和Pascal中的callbyname类似,传函数(名),在每处需要参数值时,即调用一次参数函数
6、Call by need --是5的变种,传入的函数参数仅被应用一次,然后本地保存于临时变量,函数体中需要其值是从临时变量中取。