Go获取类型底层类型
来源:互联网 发布:欧洲史 知乎 bbc 编辑:程序博客网 时间:2024/06/06 01:30
先看一下一段实例代码
使用匿名接口作为结构体成员:
package mainimport ( "fmt" "reflect")type tester struct { s interface{ String() string }}type user struct { id int name string}func (self *user)String()string { return fmt.Sprintf("User %d ,%s",self.id,self.name)}func main() { t := tester{&user{id : 001,name : "Sergey"}} a := reflect.TypeOf(t) //b := reflect.ValueOf(t) fmt.Println(a.Field(0).Type) fmt.Println(t.s.String()) //fmt.Println(a.Kind())}
代码中:fmt.Println(t.s.String())
输出结果user 1,Sergey
因为t不是interface,不能类型断言推断,所以我就想着获取它结构体里字段的底层类型,用到了reflect包.
fmt.Println(a.Field(0).Type)//输出结果:interface { String() string }
此外你可以通过for i:=0;i<t.NumField();i++
来遍历结构体的字段,a.Field(0).Name
获得字段的名称等等
阅读全文
0 0
- Go获取类型底层类型
- go - 内置基础类型
- go - struct类型
- Go-类型断言
- go struct 类型
- go 类型、变量、常量
- Go语言变量类型
- go语言学习-类型
- go类型断言
- go 类型练习
- go布尔bool类型
- go语言基本类型
- Go语言程序设计:集合类型
- go 类型转换
- Go语言-类型
- go函数类型讲解
- GO类型断言
- GO类型查询
- [阿里云] Linux CentOS 7.3 环境下安装 MySql5.7 全程讲解以及常见问题的解决方法
- 常见的DOS命令
- Django 开发学习笔记(8)- 开发表单页面,让用户添加内容
- 函数的四种调用模式(this的指向)
- should use @string resource / android 控件名称
- Go获取类型底层类型
- XORBOOT UEFI工具制作双系统启动引导
- dede增加栏目缩略图 织梦cms增加栏目缩略图2017版方法
- 7、class的继承—ES6学习笔记
- ReactNative开发环境搭建过程及遇到的问题
- 沙箱模式
- openwrt 软件源配置和问题解决
- JAVA Redis缓存实现步骤
- 放羊娃娃的春天-Redis学习笔记