什么时候在Go中使用匿名函数?

Go支持匿名函数/闭包,这使我想起了Python中的Lambda,什么时候在代码中使用它们很理想?


守着星空守着你
浏览 209回答 2
2回答

LEATH

jnml已经给出了匿名函数有用的一种情况。我补充说,当您只需要传递一个不会在其他地方调用的函数时,就可以使用它们:Goroutine发射:go func() {    ...}()将一些代码传递给函数:http.Handle("/ws", websocket.Handler(func(ws *websocket.Conn) {  ...

开满天机

我认为函数字面量是最有用的,因为它们是闭包。考虑例如:type handler func()func HanldeSomething(h handler)  {        //...        h()        // ...}func Elsewhere() {        var foo int        HandleSomething(handler(func(){                fmt.Println("debug: foo in Elsewhere is", foo)        }))}这样,在h调用when时HandleSomething,可以使用的上下文说/做某事Elsewhere。在许多情况下这很方便。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go