go语言获取变量类型的4种方式

news/2024/9/23 9:42:34/

在go语言中我们常常需要获取某个变量的类型,其他语言如python可以使用 type(x),  javascript中可以使用 typeof x 获取变量类型, Go 语言中我们也可以通过一下4种方式获取变量的类型。

1. 通过 fmt.Printf 的 %T 打印变量的类型;

var x float64 = 3.4
fmt.Printf("Type of x: %T\n", x)


2. 通过反射获取类型 reflect.Typeof(变量)  、 reflect.ValueOf(变量).Kind() ;
     

var x float64 = 3.4
fmt.Println("Type of x:", reflect.TypeOf(x)) // float64// ValueOf 获取数据类型
fmt.Printf("%s \n", reflect.ValueOf(x).Kind()) // float64


3. 类型断言检测变量类型
    

   var i interface{} = "Hello"// 类型断言s, ok := i.(string)if ok {fmt.Println(s) }


4. 类型选择, 与类型推断类似,也是类型检查和转换的一种方式。
    

    var i interface{} = "Hello"// 类型选择switch v := i.(type) {case string:fmt.Println(v) // case int:fmt.Println(v * 2)default:fmt.Println("Unknown type")}


http://www.ppmy.cn/news/1447246.html

相关文章

git生成及应用补丁

文章目录 简述补丁生成git diffgit showgit format-patch 应用补丁git applygit am 简述 git补丁是对代码库的改动的一种表述形式,它可以帮助你将代码库的修改分享给其他人,而不需要对整个代码库进行复制。 补丁生成 git diff 使用 git diff 命令可以…

hive-row_number() 和 rank() 和 dense_rank()

row_number() 是无脑排序 rank() 是相同的值排名相同,相同值之后的排名会继续加,是我们正常认知的排名,比如学生成绩。 dense_rank()也是相同的值排名相同,接下来的排名不会加。不会占据排名的坑位。

【硬件基础】STM32F103C8T6芯片引脚定义及功能介绍

1、引脚图片 2、引脚定义图 3、引脚功能介绍 3.1引脚定义图解释 上表中,S表示电源,IO表示输入输出,FT表示容忍电压可达5V,没有FT的只能达3.3V。 VBAT,备用电源引脚,当系统断电时,备用电源可给…

Golang实现一个批量自动化执行树莓派指令的软件(7)辅助模块-本地活动网络

简介 为了更方便的使用,我们将实现一个可以扫描本地连接网络中可用连接的扫描功能, 扫描本地连接网络中有哪些连接的设备主机。 环境描述 运行环境: Windows, 基于Golang, 暂时没有使用什么不可跨平台接口, 理论上支持…

1.2 Java全栈开发前端+后端(全栈工程师进阶之路)-前置课程JavaScript,看这一篇就够了

上一章我们讲了HTML的知识,那么我们现在要来学习,JavaScript 那么首先我们要知道JavaScript写在哪里。 JavaScript核心语法 js书写的位置 1、写在页面中的script标签下 只有在代码与页面有强关联的情况下才会写在页面里 2、写在指定的js文件下通过…

Oracle索引组织表与大对象平滑迁移至OceanBase的实施方案

作者简介:严军(花名吉远),十年以上专注于数据库存储领域,精通Oracle、Mysql、OceanBase,对大数据、分布式、高并发、高性能、高可用有丰富的经验。主导过蚂蚁集团核心系统数据库升级,数据库LDC单元化多活项目&#xff…

第二章:计算机系统基础知识之多媒体

多媒体概述 媒体(Media)是承载信息的载体,即信息的表现形式(或者传播形式),如文字、声音、图像、动画和视频等。按照ITU-T建议的定义,媒体可分为感觉媒体、表示媒体、显示媒体、存储媒体和传输媒体。 感觉媒体(Perception Medium)&#xff0…

一个好用的MQTT客户端软件

软件功能如下,实现的协议版本是 3.1.1 仅实现了常用的 CONNECT , PUBLISH , SUBSCRIBE 及相应的应答报文。支持以 Hex 格式显示接收的原始报文(方便初学者学习)。支持所有字段的自定义配置。支持保存与加载配置文件。 软件界面如下所示&…