Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reflection 反射:是否可以获取底层类型信息?_Reflection_Go - Fatal编程技术网

Reflection 反射:是否可以获取底层类型信息?

Reflection 反射:是否可以获取底层类型信息?,reflection,go,Reflection,Go,我正在将一个程序从移植到。为了通过测试,我不仅需要获取顶层类型信息,如果底层类型不是内置的,还需要获取底层类型 在下面的示例中,程序是否可能知道main.T的底层类型是main.TT package main import "fmt" import "reflect" func main() { type TT int type T TT x := T(0) fmt.Println(reflect.TypeOf(x)) } 输出: main.T mai

我正在将一个程序从移植到。为了通过测试,我不仅需要获取顶层类型信息,如果底层类型不是内置的,还需要获取底层类型

在下面的示例中,程序是否可能知道main.T的底层类型是main.TT

package main

import "fmt"
import "reflect"

func main() {
    type TT int
    type T TT

    x := T(0)
    fmt.Println(reflect.TypeOf(x))
}
输出:

 main.T

main.T
的底层类型是
int
,而不是
main.TT
。reflect包不知道
main.T
是用
main.TT
声明的

以下是最重要的:

每个类型T都有一个底层类型:如果T是预先声明的布尔、数值或字符串类型之一,或者是类型文字,则相应的底层类型是T本身。否则,T的基础类型是T在其类型声明中引用的类型的基础类型

type T1 string
type T2 T1
type T3 []T1
type T4 T3
字符串T1和T2的基本类型是string。[]T1、T3和T4的基本类型是[]T1


main.T
的底层类型是
int
,而不是
main.TT
。reflect包不知道
main.T
是用
main.TT
声明的

以下是最重要的:

每个类型T都有一个底层类型:如果T是预先声明的布尔、数值或字符串类型之一,或者是类型文字,则相应的底层类型是T本身。否则,T的基础类型是T在其类型声明中引用的类型的基础类型

type T1 string
type T2 T1
type T3 []T1
type T4 T3
字符串T1和T2的基本类型是string。[]T1、T3和T4的基本类型是[]T1