本文是一篇[转载文章](https://github.com/williamhng/The-Laws-of-Reflection)
Go语言反射法则 - The Laws of Reflection
原文地址:http://blog.golang.org/laws-of-reflection
介绍
反射在计算机的概念里是指一段程序检查自身结构的能力,主要检查类型。它是元编程的一种形式。同样也是引起困扰的重大来源。
在这篇文章里我们试图阐明Go语言中的反射是如何工作的。每种语言的反射模型是不同的(许多语言压根不支持反射),然而本文只与Go有关,所以我们接下来所提到的“反射”都是指Go语言中的反射。
类型(types)与接口(interfaces)
由于反射是建立在类型系统(type system)上的,所以我们先来复习一下Go语言中的类型。
Go是一门静态类型的语言。每个变量都有一个静态类型,在编译时每个类型都明确并固定下来,例如:int, float32, *MyType, []byte 等。

