go反射

itgeniusshuai · · 811 次点击
你这个功能我说了啊,是工厂模式的需求啊,和反射没关系啊…… http://www.runoob.com/design-pattern/factory-pattern.html 以sql库为例 https://golang.org/pkg/database/sql/ 有个全局的Drivers存放所有的driver信息 https://golang.org/src/database/sql/sql.go?s=1514:1537#L53 然后有一个Register方法,供子包把初始化函数以字符串的方式注册进模块 https://golang.org/src/database/sql/sql.go?s=1028:1076#L33 以mysql库为例 https://github.com/go-sql-driver/mysql/blob/master/driver.go 最后会在init方法里调用 sql.Register 写代码的时候,需要 import "database/sql" import _ "github.com/go-sql-driver/mysql" db, err := sql.Open("mysql", "user:password@/dbname") 这样来使用 参考 https://github.com/go-sql-driver/mysql 这应该就是你需要的东西了吧?
#9
更多评论
没有这样的反射。建议你,如果有这样的需求,还不如使用类似 PHP 这样的动态语言
#1
结构的名称来创建一个结构实例 我听着你是要做一个工厂模式? 看一下sql的驱动部分的实现吧,怎么从一个字符串来创建一个驱动的interface。
#2