浅谈 Go 语言反射
1 为什么需要反射
反射是框架的灵魂。
反射(Reflection)其实是通过允许在运行时存取程序数据,以改变程序行为的程序设计技术。也就是说,反射可以帮助我们将动态的功能实现或调用变为静态的功能描述。
反射有优点就是可以让程序灵活,更新和维护都更加简单方便,但是反射并不是没有缺点,反射在执行时对于 CPU 和内存资源会进行占用。
2 Go 反射的使用
2.1 针对结构体的反射
复制代码
2.2 针对常见数据结构的反射
复制代码
3 小总结
反射在架构中扮演者很重要的作用,其中最重要的就是增强架构的抽象,Go 语言反射里最重要的两个概念是 Type 和 Value,Type 用于获取类型相关的信息(比如 slice 的长度,Struct 的成员,函数的参数),Value 用于获取和修改原始数据的值(比如修改 slice 和 map 中的元素,修改 Struct 的成员变量)。
参考:
版权声明: 本文为 InfoQ 作者【Barry Yan】的原创文章。
原文链接:【http://xie.infoq.cn/article/9818cab791e263fe02f7e4285】。文章转载请联系作者。
评论