擅长:python、mysql、java
<p>或者,如果您想要一个更近的结构(诚然,在这种情况下,根本不需要):</p>
<pre><code>package main
import "fmt"
type dispatcher struct {
listeners []func()
}
func (d *dispatcher) addListener(f func()) {
d.listeners = append(d.listeners, f)
}
func (d *dispatcher) notify() {
for _, f := range d.listeners {
f()
}
}
func ping() {
fmt.Println("Ping... ping...")
}
func beep() {
fmt.Println("Beep... beep...")
}
func main() {
d := dispatcher{}
d.addListener(ping)
d.addListener(beep)
d.notify()
}
</code></pre>
<p><a href="http://play.golang.org/p/pRPSQ7vIbj" rel="nofollow">Go playground</a></p>