引入反射模块

//导入模块
import ("fmt""reflect"
)

在函数中使用反射

func CallAll(v []interface{}) {for _, r := range v {fmt.Println(reflect.TypeOf(r))fmt.Println(reflect.TypeOf(r).Kind())}
}

在遍历中使用反射

//转换Dog和Cat结构为interface{}anis := make([]interface{}, len(animals))//anis[0] = animals[0].Speak()//anis[1] = animals[1].Speak()//遍历集合并给interface{}赋值for k, v := range animals {anis[k] = "convert to interface{} : " + v.Speak()out_kind_type := fmt.Sprintf("Speak: 类型-> %v 种类-> %v", reflect.TypeOf(v.Speak), reflect.TypeOf(v.Speak).Kind())fmt.Println(out_kind_type)}

完整代码

package main //包名
//导入模块
import ("fmt""reflect"
)//接口定义
type Animal interface {Speak() string //定义一个方法Speak返回类型是字符串
}//定义

golang反射的类型Type与种类Kind使用相关推荐

  1. Golang反射机制的实现分析——reflect.Type方法查找和调用

    在<Golang反射机制的实现分析--reflect.Type类型名称>一文中,我们分析了Golang获取类型基本信息的流程.本文将基于上述知识和经验,分析方法的查找和调用.(转载请指明出 ...

  2. java基础之反射类型Type

    Java在加入泛型之后,仅仅Class已经不足以描述数据的类型了,比如List类型的数据,其Class的类型为List.class,但是其类型包含了泛型参数,所以java引入了Type类型来描述泛型类 ...

  3. Go语言学习笔记十二(反射的类型对象)

    Go语言的反射 在G语言程序中可以通过reflect包的TypeOf()函数获取任意值的类型对象,程序可以通过类型对象访问任意值的类型信息. package main import ("fm ...

  4. golang——反射

    反射 基本概念 反射规则 反射API 反射三定律 反射优缺点 优点 缺点 基本概念 Go的反射基础是接口和类型系统.Go的反射借助了实例到接口的转换所使用的的数据结构,首先将实例传递给内部的空接口,实 ...

  5. golang: 类型转换和类型断言

    类型转换在程序设计中都是不可避免的问题.当然有一些语言将这个过程给模糊了,大多数时候开发者并不需要去关注这方面的问题.但是golang中的类型匹配是很严格的,不同的类型之间通常需要手动转换,编译器不会 ...

  6. Java-使用反射获取类型信息

    2019独角兽企业重金招聘Python工程师标准>>> 一个简单类的例子 在这个类中,有普通的String类型,有数组类型,有带泛型的List类型,有嵌套List类型,以及有多个泛型 ...

  7. golang各数值类型的最大最小值

    golang各数值类型的最大最小值 (金庆的专栏 2020.9) golang 的 math 包已经定义了以下常量: Constants const (E = 2.718281828459045235 ...

  8. golang实现枚举类型

    描述 golang无枚举类型, 但可以借助自定义类型实现 什么是枚举类型 枚举类型是一种类型, 它的值只有有限个. 换而言之, 枚举类型=一个类型+N个离散值 go的实现, 可以自定义一个类型, 把它 ...

  9. Go 学习笔记(33)— Go 自定义类型 type(自定义结构体、结构体初始化、结构体内嵌、自定义接口)

    1. 自定义类型格式 用户自定义类型使用关键字 type ,其语法格式是: type newType oldType oldType 可以是自定义类型.预声明类型.未命名类型中的任意一种. newTy ...

  10. golang中int类型切片无需传指针

    golang中int类型切片无需传指针就可以改变切片的值 func main() {x := []int{1, 2, 3}func(arr []int) {arr[0] = 7fmt.Println( ...

最新文章

  1. 深度丨如何理解和评价机器学习中的表达能力、训练难度和泛化性能
  2. 关于iOS去除数组中重复数据的几种方法
  3. 怎么选择网管型和非网管型交换机
  4. git push代码出现push rejected错误
  5. Hbase(5)——python用happybase操作Hbase
  6. html生成xml文件,字符串xml生成xml文件
  7. 九齐NY8B072A单片机使用笔记(二)TIMER1/2/3定时器
  8. EasyUI 在aspx页面显示高度不正常解决办法
  9. 浅层砂过滤器 全自动浅层介质过滤系统
  10. 联想 M7400 两种清零方法
  11. 白盒测试实验报告模板
  12. 正定矩阵与半正定矩阵
  13. 项目管理(一) - RFP、合同与SOW的内容与区别
  14. ipa-server
  15. 读《创业36条军规》(三)学先进 傍大款 走正道
  16. 大流量下订单号生成方法
  17. 十大蓝牙耳机排名,2021性价比蓝牙耳机
  18. 电商平台数据仓库搭建01-项目介绍
  19. 《算法图解》学习笔记(七):狄克斯特拉算法(附代码)
  20. vc禁止标题栏拖动窗口

热门文章

  1. echarts柱形图x轴y轴互换_echarts X Y轴互换后显示问题
  2. mib文件在服务器的什么位置,MIB文件简单分析
  3. 《大数据日知录》读书笔记 + 回顾补充(20190716 - 2019MMdd)
  4. Ubuntu 16.04下使用Wine安装Windows版的微信(不太完美)
  5. k_fold_cv函数——bartMachine包内函数详解
  6. java代码生成springdao_可一键生成dao、表、controller等几十种的代码生成器源码分享...
  7. 三毛3--亲爱的婆婆大人
  8. 行业研究报告-全球与中国白光LED电子皮镜市场现状及未来发展趋势
  9. Executors一篇就够
  10. HDU-1869 六度分离 (矩阵的幂运算求通路个数)