我正在尝试将以下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
Run Code Online (Sandbox Code Playgroud) 想知道关于如何代码应与问候的弃用而改变任何帮助defrel和事实,并移动PLDB?
这是代码:
(defrel parent x y)
(facts parent ’[[dave kaylen]
[frank dave]])
(defn grandparent
[x y]
(fresh [z]
(parent x z)
(parent z y)))
;; In the REPL
user> (run* [q]
(fresh [x y]
(grandparent x y)
(== q [x y])))
;; Result
([frank kaylen])
Run Code Online (Sandbox Code Playgroud)