Go进阶:反射3定律
各位学习Go语言的朋友,周末好,这次跟大家聊一聊Go语言的一个高级话题:反射。 这篇文章是从我过去的学习笔记修改来的,内容主要来自Go Blog的一篇文章《The law of reflection》。 这篇文章主要介绍反射和接口的关系,解释内在的关系和原理。 反射来自元编程,指通过类型检查变量本身数据结构的方式,只有部分编程语言支持反射。 类型 反射构建在类型系统之上,Go是静态类型语言,每一个变量都有静态类型,在编译时就确定下来了。 比如: type MyInt int var i int var j MyInt i和j的底层类型都是int,但i的静态类型是int,j的静态类型是MyInt,这两个是不同类型,是不能直接赋值的,需要类型强制转换。 接口类型比较特殊,接口类型的变量被多种对象...阅读全文