反射
反射是什么
反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。
Go 语言提供了一种机制在运行时更新变量和检查它们的值、调用它们的方法,但是在编译时并不知道这些变量的具体类型,这称为反射机制
不是很理解反射,不懂这个有什么用。感觉这个就和运行时申请内存差不多?
反射的作用
1.在编写不定传参类型函数的时候,或传入类型过多时
2.不确定调用哪个函数,需要根据某些条件来动态执行
反射的实现
Go的反射基础是接口和类型系统,Go的反射机制是通过接口来进行的。
Go 语言在 reflect 包里定义了各种类型,实现了反射的各种函数,通过它们可以在运行时检测类型的信息、改变类型的值。