ruby的方法支持方法调用作为参数吗
2 回答
子衿沉夜
TA贡献1828条经验 获得超3个赞
就是引用对象传参,传到函数里边你在函数里修改它,实参也会变
比如数组是引用对象吧
void foo(int[] a)有这么一个函数,你在函数体里a[0] = 3;
然后其他地方调用foo
int[] a = new int[]{1,2,3,4};
foo(a);
// 到这里结果a[0]就变成3了
你例子里的x和harry你可以看作是一个指代,它们两指向同一快内存,在函数里x修改了它指向的地方,也就相当于harry指向的地方被修改了
下面->表示指向,比如a->xxx,a指向xxx这块内存
a -> Employee(A)
b -> Employee(B)
传参到swap里
a = x -> Employee(A)
b = y -> Employee(B)
swap结束时
b = x -> Employee(B)
a = y -> Employee(A)
也就是说,swap只是交换x和y的引用,它们两引用的对象被交换了,然后x和y是swap内部的局部变量,函数结束就over了
对调用者传入的a和b没有实质上的改变
- 2 回答
- 0 关注
- 462 浏览
添加回答
举报
0/150
提交
取消