Go语言反射Type和Value教程

在 中对所有 进行 ,都可以得到一个包含 Type 和 Value 的信息结构。顾名思义,Type 主要表达的是被反射的这个 本身的类型信息,而 Value 则为该变量实例本身的信息。

反射获取Type

语法

reflect.TypeOf(varname)

说明

reflect.TypeOf

反射获取Value

语法

reflect.ValueOf(varname)

说明

reflect.ValueOf

案例

Go语言反射获取Type

可以使用反射获取变量的类型信息

package main import ( "fmt" "reflect" ) func main() { fmt.Println("嗨客网(www.haicoder.net)") var x = 1024 var str = "HaiCoder" fmt.Println("x type =", reflect.TypeOf(x)) fmt.Println("str type =", reflect.TypeOf(str)) }

程序运行后,控制台输出如下:

03_golang反射获取Type.png

reflect.TypeOf
reflect.TypeOf

反射获取变量的Value

可以使用反射获取变量的Value

package main import ( "fmt" "reflect" ) func main() { fmt.Println("嗨客网(www.haicoder.net)") var x = 1024 var str = "HaiCoder" fmt.Println("X value =", reflect.ValueOf(x)) fmt.Println("Str value =", reflect.ValueOf(str)) }

程序运行后,控制台输出如下:

04_golang反射获取Value.png

reflect.ValueOf
reflect.ValueOf

Go语言反射Type和Value教程总结

使用反射获取变量基本类型的语法:

reflect.TypeOf(varname)

使用反射获取变量值的基本语法:

reflect.ValueOf(varname)