59.笔记go语言——go语言中的反射

来源:互联网 发布:推广优化软件 编辑:程序博客网 时间:2024/05/16 15:50

59.笔记go语言——go语言中的反射

每个语言都有反射,Go语言也是。

Go语言是静态类型,所有数据的类型在编译器都是明确的

反射例子一

代码如下:

packagemain

 

import(

    "fmt"

    "reflect"

)

 

funcmain(){

    varxfloat64=3.4

    fmt.Println("type:",reflect.TypeOf(x))

}

执行:

输出如下:

type: float64

                  OK,SO?

                  reflect包有两个数据类型必须知道,一个是Type,一个是Value。

Type就是定义的类型的一个数据类型,Value是值的类型

TypeOf和ValueOf是获取Type和Value的方法

说明

反射是用程序检查其所拥有的结构,尤其是类型的一种能力;这是元编程的一种形式。反射可以在运行时检查类型和变量,例如它的大小、方法和 动态 的调用这些方法。这对于没有源代码的包尤其有用。这是一个强大的工具,除非真得有必要,否则应当避免使用或小心使用。

变量的最基本信息就是类型和值:反射包的 Type 用来表示一个 Go类型,反射包的Value  Go值提供了反射接口。

 

 

 

 

原创粉丝点击