如何在Go中的切片中存储函数
发布时间:2020-12-20 11:49:44 所属栏目:Python 来源:网络整理
导读:我正在尝试将以下 Python功能移植到Golang. 特别是,如何在切片中存储函数然后调用它们. 我怎么能在Golang中这样做? class Dispatcher(object): def __init__(self): self._listeners = [] def addlistener(self,listener): self._listeners.append(listener
我正在尝试将以下
Python功能移植到Golang.
特别是,如何在切片中存储函数然后调用它们. 我怎么能在Golang中这样做? class Dispatcher(object): def __init__(self): self._listeners = [] def addlistener(self,listener): self._listeners.append(listener) def notifyupdate(self): for f in self._listeners: f() def beeper(): print "beep...beep...beep" def pinger(): print "ping...ping...ping" dispatch = Dispatcher() dispatch.addlistener(beeper) dispatch.addlistener(pinger) dispatch.notifyupdate() output: beep...beep...beep ping...ping...ping 解决方法
实际上很简单:
package main import "fmt" func main() { var fns []func() fns = append(fns,beeper) fns = append(fns,pinger) for _,fn := range fns { fn() } } func beeper() { fmt.Println("beep-beep") } func pinger() { fmt.Println("ping-ping") } 游乐场:http://play.golang.org/p/xuDsdeRQX3. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |