Go的reflect机制和reflect包
Go 的 reflect 机制和 reflect 包 概述 虽然 Go 是静态语言,然而还是提供了 reflect 机制,并且定义了 reflect 包来辅助反射处理。在 reflect 包中,最重要的两个类型就是 Type和Value,分别从类型、值的角度来描述一个 Go 对象。 Type 类型是一个接口,这个接口实现了 String() string 方法。 Value 类型是一个结构,但是并未定义任何导出字段,同样定义了 String() string 方法。 使用如下语句来导入 reflect 包 import "reflect" 注意 : 1.本文中出现在类型章节的函数,都是 Type 的方法。由于接口的特殊性,无法明确其 receiver 是指针还是值,所以并未显示其 receiver ,但都是有 receiver 的 2.很多方法都有要求,如果要求不满足,那么 panic 3.Value 类型也有零值,零值只能调用 IsValid()/String()/Kind() 方法,其余方法都会 panic 下面我们将依次介绍不同类型的对象和它对应的 Type/Value 对象 Go 的 reflect 机制和 reflect 包 1 类型 3 值 4 算术类型的 Go 对象 : 6 Go 的 reflect 机制和 reflect 包 1 类型 3 Kind 类型 4 值 4