跳到主要内容

go-反射

  • Go 的反射 Reflection
  • 反射 = 程序在运行时,查看一个变量“是什么类型、里面有什么值”,甚至动态修改它
  • 使用reflect 是 Go 标准库

反射作用​

  • 有一些场景,编译代码时你并不知道传进来的到底是什么类型
    • 通过反射提前知道类型,运行时再去检查类型
  • 反射式需要运行时才会动态查找
  • 注意不要滥用反射,反而会增加代码的复杂度、以及可读性

反射相关用法​

  • reflect.TypeOf:获取类型信息
  • reflect.ValueOf:获取值
go
// 获取类型
reflect.TypeOf(x)
// 获取值
reflect.ValueOf(x)