我试图理解 Go 中创建一个带参数的匿名函数与让该函数充当闭包之间的区别。这是差异的一个例子。
带参数:
func main() {
done := make(chan bool, 1)
go func(c chan bool) {
time.Sleep(50 * time.Millisecond)
c <- true
}(done)
<-done
}
作为关闭:
func main() {
done := make(chan bool, 1)
go func() {
time.Sleep(50 * time.Millisecond)
done <- true
}()
<-done
}
我的问题是,第一种形式什么时候比第二种形式好?你会为这种事情使用参数吗?我唯一能看到第一种形式有用的时候是func(x, y)从另一个函数返回 a 时。
相关分类