GO语言查询类型断言的方法
发表于:2025-11-10 作者:千家信息网编辑
千家信息网最后更新 2025年11月10日,这篇文章主要介绍"GO语言查询类型断言的方法"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"GO语言查询类型断言的方法"文章能帮助大家解决问题。类型查询我们知道
千家信息网最后更新 2025年11月10日GO语言查询类型断言的方法
这篇文章主要介绍"GO语言查询类型断言的方法"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"GO语言查询类型断言的方法"文章能帮助大家解决问题。
类型查询
我们知道interface的变量里面可以存储任意类型的数值(该类型实现了interface)。那么我们怎么反向知道这个变量里面实际保存了的是哪个类型的对象呢?目前常用的有两种方法:
comma-ok断言
switch测试
1.comma-ok断言
Go语言里面有一个语法,可以直接判断是否是该类型的变量: value, ok = element.(T),这里value就是变量的值,ok是一个bool类型,element是interface变量,T是断言的类型。
如果element里面确实存储了T类型的数值,那么ok返回true,否则返回false。
var i []interface{}i = append(i, 10, 3.14, "aaa", demo15)for _, v := range i { if data, ok := v.(int); ok { fmt.Println("整型数据:", data) } else if data, ok := v.(float64); ok { fmt.Println("浮点型数据:", data) } else if data, ok := v.(string); ok { fmt.Println("字符串数据:", data) } else if data, ok := v.(func()); ok { //函数调用 data() }}2. switch测试
var i []interface{}i = append(i, 10, 3.14, "aaa", demo15)for _,data := range i{ switch value:=data.(type) { case int: fmt.Println("整型",value) case float64: fmt.Println("浮点型",value) case string: fmt.Println("字符串",value) case func(): fmt.Println("函数",value) }}类型断言
if判断
package mainimport "fmt"type Student struct { name string id int}func main() { i := make([]interface{}, 3) i[0] = 1 //int i[1] = "hello go" //string i[2] = Student{"mike", 666} //Student //类型查询,类型断言 //第一个返回下标,第二个返回下标对应的值, data分别是i[0], i[1], i[2] for index, data := range i { //第一个返回的是值,第二个返回判断结果的真假 if value, ok := data.(int); ok == true { fmt.Printf("x[%d] 类型为int, 内容为%d\n", index, value) } else if value, ok := data.(string); ok == true { fmt.Printf("x[%d] 类型为string, 内容为%s\n", index, value) } else if value, ok := data.(Student); ok == true { fmt.Printf("x[%d] 类型为Student, 内容为name = %s, id = %d\n", index, value.name, value.id) } }}Switch判断
package mainimport "fmt"type Student struct { name string id int}func main() { i := make([]interface{}, 3) i[0] = 1 //int i[1] = "hello go" //string i[2] = Student{"mike", 666} //Student //类型查询,类型断言 for index, data := range i { switch value := data.(type) { case int: fmt.Printf("x[%d] 类型为int, 内容为%d\n", index, value) case string: fmt.Printf("x[%d] 类型为string, 内容为%s\n", index, value) case Student: fmt.Printf("x[%d] 类型为Student, 内容为name = %s, id = %d\n", index, value.name, value.id) } }}关于"GO语言查询类型断言的方法"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。
类型
内容
查询
方法
变量
语言
v.
数据
知识
下标
函数
字符
字符串
实际
数值
浮点
行业
存储
测试
不同
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
手机能考全国网络安全大赛嘛
网易大神实名认证服务器打盹
涉外网络安全管理
高教社期刊数据库
斑马鱼数据库
用excl给数据库建表
为什么黎明觉醒服务器维护中
数据库的安全管理实验心得
养老软件开发公司如何
服务器可以管理网站
上汽 软件开发工资待遇
qt开发访问数据库
计算机网络技术三级考原题
测试不会数据库
免费游戏服务器
永春市网络安全
逃离塔科夫经常服务器中断
小赢理财软件开发职位
网络安全教育画手抄报
国家五大基础数据库
晋宁软件开发
徐汇区网络营销软件开发诚信互利
服务器 代维 安全
无线网络技术导论论文方向
sql 注入 判断数据库
将云硬盘挂载给弹性云服务器
考研专业课只考数据库原理的学校
怎样架设ftp服务器
西安软件开发哪个好找
网络技术是烂专业吗