为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
ABOUTYOU 2021-12-07 16:38:39
我正在从go/ast到移植一个程序reflect。为了通过测试,如果底层类型不是内置的,我不仅需要获取顶级类型信息,还需要获取底层类型。在下面的例子中,程序是否有可能知道 main.T 的底层类型是 main.TT?package mainimport "fmt"import "reflect"func main() {    type TT int    type T TT    x := T(0)    fmt.Println(reflect.TypeOf(x))}输出: main.T
查看完整描述

1 回答

?
三国纷争

TA贡献1804条经验 获得超7个赞

的基础类型main.Tint,不是main.TT。反射包没有main.T用 声明的知识main.TT

以下是规范对底层类型的说明

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

type T1 string
type T2 T1
type T3 []T1
type T4 T3

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


查看完整回答
反对 回复 2021-12-07
  • 1 回答
  • 0 关注
  • 167 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信