猿问

将参数传递给函数闭包

我试图理解 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 时。


暮色呼如
浏览 175回答 1
1回答
随时随地看视频慕课网APP

相关分类

Go
我要回答