Go语言反射Type和Value

Go语言反射Type和Value教程

Golang 中对所有 接口 进行 反射,都可以得到一个包含 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

首先,我们定义了一个 int 类型 的变量 x 和一个 字符串 类型的变量 str,接着,我们使用 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

首先,我们定义了一个 int 类型的变量 x 和一个字符串类型的变量 str,接着,我们使用 reflect.ValueOf 获取这两个变量的值,并打印。

即,我们使用 reflect.ValueOf 反射出了两个基本数据类型的变量的值。

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

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

reflect.TypeOf(varname)

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

reflect.ValueOf(varname)