Reflection 反射:是否可以获取底层类型信息?
我正在将一个程序从移植到。为了通过测试,我不仅需要获取顶层类型信息,如果底层类型不是内置的,还需要获取底层类型 在下面的示例中,程序是否可能知道main.T的底层类型是main.TTReflection 反射:是否可以获取底层类型信息?,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
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