Go 如何仅调用具有注释或标记的特定函数
有没有一种方法可以添加一个标记或注释一些方法,这样每当发生事件时,所有带有该标记或注释的方法都会被调用Go 如何仅调用具有注释或标记的特定函数,go,annotations,Go,Annotations,有没有一种方法可以添加一个标记或注释一些方法,这样每当发生事件时,所有带有该标记或注释的方法都会被调用 如何在Go中实现这一点?正如其他人所说,Go中的函数没有注释或标记 但是,使用map或slice和register函数来保存其他函数或接口的记录是完全可能的。您只需要在包的init中手动调用register func 比如说, package events var eventFuncs = make(map[string]func()) func Register(event string,
如何在Go中实现这一点?正如其他人所说,Go中的函数没有注释或标记 但是,使用map或slice和register函数来保存其他函数或接口的记录是完全可能的。您只需要在包的init中手动调用register func 比如说,
package events
var eventFuncs = make(map[string]func())
func Register(event string, f func()) {
eventFuncs[event] = append(eventFuncs[event],f)
}
func Get(event string) []func() {
return eventFuncs[event]
}
并使用该软件包注册:
package xy
import (
"fmt"
"some.url/events"
)
func Call() {
fmt.Println("Ha!")
}
func init() {
events.Register("x",Call)
}
然后在别处调用func:
package main
import (
"some.url/events"
)
func main() {
for _,f := range pkg.GetEvent("x") { f() }
}
不。Go中的函数没有注释或标记。不过,如果你解释一下你的更大目标,几乎肯定有办法实现它。这看起来像是XY问题。听起来像是你在尝试某种AOP,也许?Go中不支持这一点,但也许您可以提供一些您实际尝试完成的详细信息。我正在尝试为Kubernetes运行Go客户端,每当创建k8服务时,我希望调用n个不同的子例程来执行不同的操作。不要编辑标题以添加标记。标签,即在Go中,应。