为什么单单闭包中传引用,而其他地方都是传值?

miaozilong · · 927 次点击
变量作用域啊,var b=10, 定义的变量b,作用域在整个main函数,所以b=20可以访问到变量b,所以将b的值修改为20。
#3
更多评论
这个第一反应是变量的作用域, 而且 形式参数这样写走的是值copy ,即changeB里面改变b的值并不会改变原值, 如果 b :=20 则相当于在闭包里面创建了一个新的变量这样的话 b打印的值会是10,方法也可以做按地址传递参数,,个人理解不喜勿喷
#1
闭包用到外部变量是引用,这就是和普通函数的差别。普通函数你既可以值传递也可以指针传递。
#2