版权声明: https://blog.csdn.net/qq_29785317/article/details/81276716
go闭包中的变量捕获 传递的是变量的引用 如下面示例:
package main
import "fmt"
func main(){
a := 10
func(){
a = 20
fmt.Println("inside a is :",a)
}()
fmt.Println("outside a is :",a)
}
//output: inside a is : 20
// outside a is : 20
但是在php中不是这样,这跟php中的变量作用域有关
<?php
function test(){
$a = 10;
$b = function () use ($a){ //如果不用use,则会报 $a undefined
echo $a.'---------';
$a = 20;
echo $a;
};
$b();
echo '---------'.$a;
}
test();
//output: 10-----20----10
最近正在学go,两者比较着学会容易转换一点,加油~