golang反射的类型Type与种类Kind使用
引入反射模块
//导入模块
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使用相关推荐
- Golang反射机制的实现分析——reflect.Type方法查找和调用
在<Golang反射机制的实现分析--reflect.Type类型名称>一文中,我们分析了Golang获取类型基本信息的流程.本文将基于上述知识和经验,分析方法的查找和调用.(转载请指明出 ...
- java基础之反射类型Type
Java在加入泛型之后,仅仅Class已经不足以描述数据的类型了,比如List类型的数据,其Class的类型为List.class,但是其类型包含了泛型参数,所以java引入了Type类型来描述泛型类 ...
- Go语言学习笔记十二(反射的类型对象)
Go语言的反射 在G语言程序中可以通过reflect包的TypeOf()函数获取任意值的类型对象,程序可以通过类型对象访问任意值的类型信息. package main import ("fm ...
- golang——反射
反射 基本概念 反射规则 反射API 反射三定律 反射优缺点 优点 缺点 基本概念 Go的反射基础是接口和类型系统.Go的反射借助了实例到接口的转换所使用的的数据结构,首先将实例传递给内部的空接口,实 ...
- golang: 类型转换和类型断言
类型转换在程序设计中都是不可避免的问题.当然有一些语言将这个过程给模糊了,大多数时候开发者并不需要去关注这方面的问题.但是golang中的类型匹配是很严格的,不同的类型之间通常需要手动转换,编译器不会 ...
- Java-使用反射获取类型信息
2019独角兽企业重金招聘Python工程师标准>>> 一个简单类的例子 在这个类中,有普通的String类型,有数组类型,有带泛型的List类型,有嵌套List类型,以及有多个泛型 ...
- golang各数值类型的最大最小值
golang各数值类型的最大最小值 (金庆的专栏 2020.9) golang 的 math 包已经定义了以下常量: Constants const (E = 2.718281828459045235 ...
- golang实现枚举类型
描述 golang无枚举类型, 但可以借助自定义类型实现 什么是枚举类型 枚举类型是一种类型, 它的值只有有限个. 换而言之, 枚举类型=一个类型+N个离散值 go的实现, 可以自定义一个类型, 把它 ...
- Go 学习笔记(33)— Go 自定义类型 type(自定义结构体、结构体初始化、结构体内嵌、自定义接口)
1. 自定义类型格式 用户自定义类型使用关键字 type ,其语法格式是: type newType oldType oldType 可以是自定义类型.预声明类型.未命名类型中的任意一种. newTy ...
- golang中int类型切片无需传指针
golang中int类型切片无需传指针就可以改变切片的值 func main() {x := []int{1, 2, 3}func(arr []int) {arr[0] = 7fmt.Println( ...
最新文章
- 深度丨如何理解和评价机器学习中的表达能力、训练难度和泛化性能
- 关于iOS去除数组中重复数据的几种方法
- 怎么选择网管型和非网管型交换机
- git push代码出现push rejected错误
- Hbase(5)——python用happybase操作Hbase
- html生成xml文件,字符串xml生成xml文件
- 九齐NY8B072A单片机使用笔记(二)TIMER1/2/3定时器
- EasyUI 在aspx页面显示高度不正常解决办法
- 浅层砂过滤器 全自动浅层介质过滤系统
- 联想 M7400 两种清零方法
- 白盒测试实验报告模板
- 正定矩阵与半正定矩阵
- 项目管理(一) - RFP、合同与SOW的内容与区别
- ipa-server
- 读《创业36条军规》(三)学先进 傍大款 走正道
- 大流量下订单号生成方法
- 十大蓝牙耳机排名,2021性价比蓝牙耳机
- 电商平台数据仓库搭建01-项目介绍
- 《算法图解》学习笔记(七):狄克斯特拉算法(附代码)
- vc禁止标题栏拖动窗口
热门文章
- echarts柱形图x轴y轴互换_echarts X Y轴互换后显示问题
- mib文件在服务器的什么位置,MIB文件简单分析
- 《大数据日知录》读书笔记 + 回顾补充(20190716 - 2019MMdd)
- Ubuntu 16.04下使用Wine安装Windows版的微信(不太完美)
- k_fold_cv函数——bartMachine包内函数详解
- java代码生成springdao_可一键生成dao、表、controller等几十种的代码生成器源码分享...
- 三毛3--亲爱的婆婆大人
- 行业研究报告-全球与中国白光LED电子皮镜市场现状及未来发展趋势
- Executors一篇就够
- HDU-1869 六度分离 (矩阵的幂运算求通路个数)