reflection - Golang 对象的静态与动态绑定(bind)

标签 reflection go threadpool

<分区>

我有这个应用程序,其中根据结构中的字符串过滤请求并执行不同的功能。

我的方法是使用一个 Map 将字符串映射到函数指针并执行它们。然而,这种方法正在被一个想通过反射进行过滤的队友所争辩。我们正在使用 Go,它用于监控我们网站的事件。

队友做法:使用反射根据字符串切换对象,将字符串传给函数让函数调用相关函数。 我的方法:从字符串到函数的简单映射

感谢任何帮助。

最佳答案

基于反射的自动发现的缺点是您永远必须小心添加到系统中的内容,因为它可以被自动拾取。

与需要显式公开每个函数的 map 方法相比。

当然,反射更酷、更神奇。但是自动魔法并不能很好地提高安全性或长期可维护性。

另外,如果您尝试注册一个不匹配的函数,则 map[string]func(具有特定签名)将无法编译。

你会在哪里找到带有反射的东西,然后思考为什么它是运行时失败。

关于reflection - Golang 对象的静态与动态绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29423914/

相关文章:

go - 导入本地Go模块 "cannot find module for path X"如何解决?

google-app-engine - GAE Go - 如何将私有(private)变量放入数据存储区?

c# - 当本地 stackalloc 上的数据时,匿名委托(delegate)不会在每次迭代中使用新本地

node.js - 为什么 NodeJS 需要异步编程?

c# - 使用反射查看方法内部是否调用了方法

ios - 实例化存储在元类型字典中的类

algorithm - 为什么 "Split"不是 Go 中 "string"类型的成员函数?

c# - 我如何找到从 C# 类方法调用的方法 - 而不是在运行时

reflection - 在不使用反射的情况下检查 Go 中的接口(interface)值是否为 nil

c# - 线程池 : Cross-thread operation not valid.