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

ops/2024/9/23 9:42:36/

在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/ops/26824.html

相关文章

Podman与Docker有何不同?

Podman与Docker在安全性、守护进程和兼容性方面存在显著差异。具体如下: 安全性: Docker需要root权限才能运行守护进程,这可能导致安全风险,因为配置不当的容器可能会获得对主机文件系统的无限制访问。Podman允许以非特权用户启…

前端科举八股文-CSS篇

前端科举面经-CSS篇 Css选择器的优先级css盒模型行内元素和块级元素的区别?link标签和import标签的区别讲一下弹性盒子布局的常见属性flex是哪三个属性的简写什么是BFC? 有什么作用垂直居中的方法?visibilityhidden, opacity0,display:none的区别清除浮…

数据结构——二叉树(堆)

二叉树顺序结构以及实现 普通的二叉树是不适合用数组来存储的,因为可能会存在大量的空间浪费,因此完全二叉树更适合使用顺序结构来存储。 二叉树一般有两种结构存储: 顺序结构和链式结构。 顺序结构也就是顺序表(数组)来存储,一般只有完全二…

[论文笔记]SEARCHING FOR ACTIVATION FUNCTIONS

引言 今天带来另一篇激活函数论文SEARCHING FOR ACTIVATION FUNCTIONS的笔记。 作者利用自动搜索技术来发现新的激活函数。通过结合详尽的搜索和基于强化学习的搜索,通过实验发现最佳的激活函数 f ( x ) x ⋅ sigmoid ( β x ) f(x) x \cdot \text{sigmoid}(βx…

创建SpringBoot和RabbitMQ的整合项目

文章目录 创建SpringBoot和RabbitMQ的整合项目首先快速创建一个maven项目引入SpringBoot整合rabbitMQ的依赖在src/main目录下创建resources目录并引入配置文件写消息发送者MessageSender写消息接收者MessageReceiver写RabbitMQConfig配置类写SpringBoot启动主类CommandLineRunn…

git解决冲突问题

冲突问题:开发者的俩个分支都修改了同一个文件的同一部分时, Git 无法自动决定哪个版本是正确的, 因此会产生冲突。 解决冲突: 我们git在合并的过程中指出冲突文件,通过git status命令查看那个文件存在冲突 解决方法: 1&#xff0…

【嵌入式笔试题】网络编程笔试题

非常经典的笔试题。 2.网络编程(29道) 2.1列举一下OSI协议的各种分层。说说你最熟悉的一层协议的功能。 ( 1 )七层划分为:应用层、表示层、会话层、传输层、网络层、数据链路层、物理 层。 ( 2 )五层划分为:应用层、传输层、网络层、数据链路层、物理层。 ( 3 )…

基于Springboot的web后端开发三层架构上手实操

引言 我们拿到了xml文件 我们要将将xml文件中的数据加载并解析 完成数据的处理 并且返回给前端页面(result格式) 1.将xml文件放在resources目录下 xml是我们需要解析的文件 查看xml文件 2.在springboot中引入dom4j依赖 解析xml需要在springboot中引入dom4j依赖 这边我们…