golang获取变量动态类型

embedded/2024/10/18 12:22:01/
  1. 类型断言:data.(Type)
    类型断言是最常用的获取变量动态类型的方法之一。允许在运行时将接口值转换为其具体类型。
    data 是一个接口类型的变量。
    Type 是一个具体的类型。
    这个表达式的含义是,如果 data 的底层值是 Type 类型,那么 value 将接收该底层值,并且 ok 的值将为 true,表示类型断言成功。否则,value 将接收 Type 类型的零值,而 ok 的值将为 false,表示类型断言失败。
	var data interface{} = 42value, ok := data.(int)if ok {fmt.Println("data是整型:", value)} else {fmt.Println("data不是整型")}
  1. 类型查询:data.(type)
    可以通过类型查询的方式来判断变量的类型。
	var data interface{} = 42switch value := data.(type) {case int:fmt.Println("data 是一个整型:", value)case string:fmt.Println("data 是一个字符串:", value)default:fmt.Println("data 是一个未知类型")}
  1. 使用reflect包:reflect.TypeOf(data)
    reflect包提供了对变量反射的支持,包括获取类型、值和调用方法等。
	var data1 interface{} = 42fmt.Println("data1 Type:", reflect.TypeOf(data1))var data2 = "abc"fmt.Println("data2 Type:", reflect.TypeOf(data2))

http://www.ppmy.cn/embedded/38175.html

相关文章

【Linux】gcc/g++的使用

🎉博主首页: 有趣的中国人 🎉专栏首页: Linux 🎉其它专栏: C初阶 | C进阶 | 初阶数据结构 小伙伴们大家好,本片文章将会讲解Linux中gcc/g使用的相关内容。 如果看到最后您觉得这篇文章写得不错…

spring高级篇(七)

1、异常处理 在DispatcherServlet中,doDispatch(HttpServletRequest request, HttpServletResponse response) 方法用于进行任务处理: 在捕获到异常后没有立刻进行处理,而是先用一个局部变量dispatchException进行记录,然后统一由…

python基础---函数以及常用变量

函数及变量 函数 使用def关键字 在参数名前面的*表示args是一个可变参数 def add(*args):total 0for val in args:total valreturn total# 在调用add函数时可以传入0个或多个参数 print(add()) print(add(1)) print(add(1, 2)) print(add(1, 2, 3)) print(add(1, 3, 5, 7…

2-qt之信号与槽-简单实例讲解

前言、因实践课程讲解需求,简单介绍下qt的信号与槽。 一、了解信号与槽 怎样使用信号与槽? 概览 还记得 X-Window 上老旧的回调函数系统吗?通常它不是类型安全的并且很复杂。(使用)它(会)有很多…

软考143-下午题-【试题二】:E-R图、关系模式

一、分值与目标 15分,目标10 二、题目形式 示例: 三、E-R图的基本图形元素 示例: 3-1、实体 1、弱实体 在现实世界中有一种特殊的联系,这种联系代表实体间的所有 (Ownership) 关系,例如:职工与家属的联系…

HTML5实现酷炫个人产品推广、工具推广、信息推广、个人主页、个人介绍、酷炫官网、门户网站模板源码

文章目录 1.设计来源1.1 主界面1.2 我的产品界面1.3 关于我们界面1.4 照片墙界面1.5 发展历程界面1.6 优秀人才界面1.7 热门产品界面1.8 联系我们界面 2.灵活调整模块3.效果和源码3.1 动态效果3.2 源代码 源码下载 作者:xcLeigh 文章地址:https://blog.c…

C语言----杨辉三角

各位看官们好。学习到这里想必大家应该对C语言的了解也是很深刻的了吧。但是我们也不能忘记我们一起学习的知识啊。在我们以前学习C语言的时候我想大家应该都听说过杨辉三角吧。虽然我们把其中的规律找到那么这个代码就简单很多了。那么接下里我们就来讲讲杨辉三角。 首先我们先…

【项目学习01_2024.05.01_Day03】

学习笔记 3.6 开发业务层3.6.1 创建数据字典表3.6.2 编写Service3.6.3 测试Service 3.7 接口测试3.7.1 接口完善3.7.2 Httpclient测试 3.8 前后端联调3.8.1 准备环境3.8.2 安装系统管理服务3.8.3 解决跨域问题解决跨域的方法:我们准备使用方案2解决跨域问题。在内容…