Golang反射机制的应用

  1. 云栖社区>
  2. 博客>
  3. 正文

Golang反射机制的应用

黑云长剑 2018-06-05 14:03:07 浏览11315
展开阅读全文

反射机制应用场景

反射常见应用场景有以下两种:

  1. 不知道接口调用哪个函数,根据传入参数在运行时确定调用的具体接口,这种需要对函数或方法反射。例如以下这种桥接模式:

    func bridge(funcPtr interface{}, args ...interface{})

    第一个参数funcPtr以接口的形式传入函数指针,函数参数args以可变参数的形式传入,bridge函数中可以用反射来动态执行funcPtr函数。

  2. 不知道传入函数的参数类型,函数需要在运行时处理任意参数对象,这种需要对结构体对象反射。典型应用场景是ORM,gorm示例如下:

    type User struct {
      gorm.Model
      Name         string
      Age          sql.NullInt64
      Birthday     *time

网友评论

登录后评论
0/500
评论
黑云长剑
+ 关注