当前位置: 首页 > news >正文

Golang中的类型转换介绍

Golang中存在4种类型转换,分别是:断言、显式、隐式、强制。下面我将一一介绍每种转换使用场景和方法

一、断言类型转换

主要是判断变量是否可以转换成某一类型。断言主要用于变量是interface{}类型(接口类型)的情况,且变量值必须与要转换类型一致。可以细分为2种使用方式

  • 普通断言
  • switch断言

1.1 普通断言示例

// 定义一个接口类型变量
var userInfo interface{}
// 定义一个map类型变量
userInfoNew := map[string]int{"phoneNum": 123456,"age":      18,
}
// 由于interface{}可以接收任何类型变量,因此可以将map类型变量赋值给它
userInfo = userInfoNew
// 此时userInfo变量类型仍为interface{},但变量值是map类型,若想获取变量值需采用断言进行类型转换
res, _ := userInfo.(map[string]int)
fmt.Println("age:", res["age"])

输出结果:

age: 18

1.2 switch断言示例

var userInfo interface{} = "user info"
switch val := userInfo.(type) {
case float32:fmt.Printf("userInfo变量的类型为%T userInfo变量的值为%v\n", val, val)
case float64:fmt.Printf("userInfo变量的类型为%T userInfo变量的值为%v\n", val, val)
case int:fmt.Printf("userInfo变量的类型为%T userInfo变量的值为%v\n", val, val)
case bool:fmt.Printf("userInfo变量的类型为%T userInfo变量的值为%v\n", val, val)
case string:fmt.Printf("userInfo变量的类型为%T userInfo变量的值为%v\n", val, val)
default:fmt.Println("非已知类型")
}

输出结果:

userInfo变量的类型为string userInfo变量的值为user info

二、显示类型转换

细分为2种:

  • 表达式格式为:T(x),T为变量x要转换的最终类型。适用整型与浮点型互转,字节数组与字符串类型互转,结构体类型转换接口类型(反之不行)
  • 使用strconv包提供的方法
    1)strconv.Atoi():将字符串类型转成整数
    2)strconv.Itoa():将整数转成字符串类型

三、隐式类型转换

通常是程序内部自动转换,对开发人员无感知

四、强制类型转换

这个暂时未研究

相关文章:

Golang中的类型转换介绍

Golang中存在4种类型转换,分别是:断言、显式、隐式、强制。下面我将一一介绍每种转换使用场景和方法 一、断言类型转换 主要是判断变量是否可以转换成某一类型。断言主要用于变量是interface{}类型(接口类型)的情况,…...

本人碰到的RN项目的坑

1.路径问题 路径不能含有中文 2.下载jar\aar包超时问题 手动下载:任意位置新建个文件夹,然后点击超时的jar包链接跳转到浏览器后下载到这个文件夹内,返回报错的地方找到报错的包名(com或者org开头的),然后去这个路径下找到对应的包名 C:\Users\22560\.gradle\caches\module…...

EcmaScript标准-导入与导出-js

ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会,European Computer Manufacturers Association)通过ECMA-262标准化的脚本程序设计语言。这种语言在万维网上应用广泛,它往往被称为JavaScript或JScript,所以它…...

如何将matlab中的mat矩阵文件在python中读取出来

先安装hdf5storage这个包 pip3 install hdf5storage 然后在当前目录下放入要读取的mat文件 # 将matlab中的mat文件读取出来 import hdf5storagedata hdf5storage.loadmat(inputWeights.mat) print(data[inputWeights])...

解释C语言中 6.18f (浮点数常量后缀)

在C语言中,例如6.18f ,这是一个浮点数常量。 6.18 是一个浮点数,而后缀 f 表示该浮点数是单精度浮点数。 在C语言中,默认的浮点数常量类型是双精度浮点数,如果希望使用单精度浮点数,可以在常量后面加上 f…...

Pandas 2.1中的新改进和新功能

大家好,Pandas 2.1于2023年8月30日发布,跟随本文一起看看这个版本引入了哪些新内容,以及它如何帮助用户改进Pandas的工作负载,包含了一系列改进和一组新的弃用功能。 Pandas 2.1在Pandas 2.0中引入的PyArrow集成基础上进行了大量…...

c#static(静态)关键字

在C#中,static关键字有多种用途,可以用于声明静态成员、静态类和静态方法。 静态成员:使用static关键字声明的成员属于类,而不是类的实例。静态成员在类第一次被使用之前就被初始化,且只有一个副本存在于内存中&#x…...

GitHub配置SSH key

GitHub配置SSH key Git配置信息并生成密钥 设置用户名和密码 设置用户名 git config --global user.name "用户名" 设置邮箱 git confir --global user.email "邮箱" 生成密钥 ssh-keygen -t rsa -C "邮箱" 查看密钥 到密钥所保存的位置 复…...

文件审计及文件完整性监控

什么是文件审核 对文件服务器中发生的所有事件的检查称为文件审核。这包括监视文件访问,其中包含谁访问了什么文件、何时以及从何处访问的详细信息;对访问最多和修改的文件的分析;成功和失败的文件访问尝试;等等。文件服务器审核过程的主要目标是跟踪在配置的服务器…...

华为智能企业远程办公安全解决方案(1)

华为智能企业远程办公安全解决方案(1) 课程地址方案背景需求分析企业远程办公业务概述企业远程办公安全风险分析企业远程办公环境搭建需求分析 方案设计组网架构设备选型方案亮点 课程地址 本方案相关课程资源已在华为O3社区发布,可按照以下…...

k8s中常用命令总结

文章目录 进入pod容器的命令pod中只有1个用户容器pod中只有2个(含)以上用户容器 yaml中的字段不清楚后面跟什么,通过explain来查看查看pod内指定容器的日志Pod内各个容器的服务端口不能相同资源对象的创建方式一方式二 查看pod的详细信息查看…...

Logistic map混沌掩盖信号

开学接触了一些有关混沌知识的学习,阅读量一些混沌通信的论文,对于混沌掩盖信号以确保加密通信有一定的兴趣。混沌的产生我选用的是logistic map映射产生混沌,主要就是一个递推公式: 对于这样一个式子,可以看出&#x…...

外包干了2个月,技术有明显退步...

先说一下自己的情况,本科生,18年通过校招进入广州某软件公司,干了接近3年的功能测试,今年国庆,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!可我已经在一个企业干了3年的功能测试&…...

顺序表和链表

顺序表和链表 一.线性表二.顺序表三.链表链表的分类单链表的实现双链表的实现 四.顺序表和链表的区别和联系 一.线性表 常见的线性表:顺序表、链表、栈、队列、字符串 线性表在逻辑上是线性结构,也就说是连续的一条直线,但是在物理结构上并不…...

k8s--架构基础--云控制器管理器

具体来说,云控制器管理器允许用户将集群与云服务提供商的 API 进行连接,以获取与云平台相关的信息和资源。通过这种连接,Kubernetes 可以利用云服务提供商的功能和特性,例如虚拟机、负载均衡器、对象存储等。与此同时,…...

OpenAI 更新 ChatGPT:支持图片和语音输入【附点评】

一、消息正文 9月25日消息,近日OpenAI宣布其对话AI系统ChatGPT进行升级,添加了语音输入和图像处理两个新功能。据OpenAI透露,这些新功能将在未来两周内面向ChatGPT Plus付费用户推出,免费用户也将很快可以使用这些新功能。这标志着ChatGPT继续朝着多模态交互的方向发展,为用户提…...

数据结构:堆的简单介绍

目录 堆的介绍:(PriorityQueue) 大根堆:根节点比左右孩子节点大 小根堆:根节点比左右孩子节点小 堆的存储结构: 为什么二叉树在逻辑上用满二叉树结构,而不是普通二叉树呢? 因为如果是普通二叉树会造成资源的浪费​编辑 堆的介绍:(PriorityQueue) 堆又称优先级队列,何为优先…...

【LeetCode-中等题】654.最大二叉树

文章目录 题目方法一:递归 题目 方法一:递归 class Solution {int[] num null; public TreeNode constructMaximumBinaryTree(int[] nums) {num nums;return myTree(0,num.length-1);}public TreeNode myTree( int begin , int end){if(begin > end…...

基于微信小程序的刷题考试系统设计与实现(适用于各类考试类、答题类程序)

文章目录 前言系统主要功能:具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计…...

用Java打印长方形、平行四边形 、三角形、菱形、空心菱形

今天复习使用嵌套for来完成一些任务,于是想着打印一些图形来练习 思考感悟 长方形 行数 和 每行的星星数嵌套遍历即可 平行四边形 核心:每行空格数总行数-行数 行数空格数132231 三角形 核心:每行星星数2*当前行数-1 行数星星数1123…...

es6模块化,怎么判断当前文件使用的是es6的模块化还是commenjs的模块化

es6的模块化,文件中的this,指向undefined,不是指向window import.meta - JavaScript | MDN...

Ubuntu 基础配置

源配置 源路径: /etc/apt/sources.list aliyun源 20.04 deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse deb http://mirrors.a…...

CISSP学习笔记:人员安全和风险管理概念

第二章 人员安全和风险管理概念 2.1 促进人员安全策略 职责分离: 把关键的、重要的和敏感工作任务分配给若干不同的管理员或高级执行者,防止共谋工作职责:最小特权原则岗位轮换:提供知识冗余,减少伪造、数据更改、偷窃、阴谋破坏和信息滥用的风险&…...

ubuntu18.04 OpenGL开发(显示YUV)

源码参考:https://download.csdn.net/download/weixin_55163060/88382816 安装opengl库 sudo apt install libglu1-mesa-dev freeglut3-dev mesa-common-dev 安装opengl工具包 sudo apt install mesa-utils 检查opengl版本信息(桌面终端执行&#xff09…...

React(react18)中组件通信06——redux-toolkit + react-redux

React(react18)中组件通信06——redux-toolkit react-redux 1 前言1.1 redux 和 react-redux1.2 关于redux-toolkit1.2.1 官网1.2.2 为什么要用Redux Toolkit? 1.3 安装 Redux Toolkit1.4 Redux Toolkit相关API 2. 开始例子——官网例子2.1 …...

第七章 查找 九、B+树

目录 一、定义 二、B树需要满足的条件 三、重要考点 一、定义 1、B树是一种常用的数据结构,用于实现关系型数据库中的索引。 2、其特点是可以在磁盘等外存储器上高效地存储大量数据,并支持快速的查询、插入、删除等操作。 3、B树的结构类似于二叉搜…...

XPD911协议系列-集成同步降压多口互联控制器

产品描述: XPD911 是一款集成 USB Type-C、USB Power Delivery(PD) 3.1 以及 PPS、 QC3.0/3.0 /2.0 快充协议、华为 FCP/SCP/HVSCP 快充协议、三星 AFC 快充协议、VOOC 快充协议、MTK PE 快充协议、BC1.2 DCP 以及苹果设备 2.4A 充电规范的多…...

数字反转(蓝桥杯)

数字反转 题目描述 给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见实例 2)。 输入描述 输入共 1 行&…...

十一.EtherCAT开发之microchip MCU D51+ LAN9253 的开发FOE应用(SPI directly 模式)

十一.EtherCAT开发之microchip MCU D51+ LAN9253 的开发FOE应用(SPI directly 模式) 文章目录 十一.EtherCAT开发之microchip MCU D51+ LAN9253 的开发FOE应用(SPI directly 模式)11.0 软件更新方式11.1 SSC TOOL配置11.2 MCU D51 FOE函数支持11.2.1 下载download11.2.2 上传up…...

【分布式计算】二、架构(Architectures)

1.中心化架构(Centralized Architectures) 1.1.经典C/S模型 服务器:一个或多个进程提供服务 客户端:一个或多个进程使用服务 客户端和服务器可以在不同的机器上 客户端遵循请求/回复模型 1.2.传统三层视图 用户界面层&#x…...

wordpress 页脚改颜色/小程序开发收费价目表

cookie的实现很简单,在服务器返回的响应中,header里增加Set-Cookie,浏览器接受到Set-Cookie中的value,下次访问这个网站的请求中就会带上这个cookie。编写一个增加cookie的函数: def add_cookie(cookie):header HTTP…...

做网站到底能不能赚钱/销售的技巧与口才

用EditPlus打造你自己的IDE 因为对微软的notepad有点审美疲劳,所以常用EditPlus或UltraEdit32代替之.这两个文本编辑器功能比notepad强太多了.对程序员而言,本文只讲一下他的两个特点,用它来打造我们自己的IDE.希望对大家有用.1.程序高亮显示写程序的人长期处于某种临界状态,用…...

淄博logo设计公司/淘宝优化

详细解答与dp序列初始化请见Carl大佬:点击链接 动态规划序列含义: dp[持有股票][不持股票] 持有股票: 应该为最便宜的股票,(积累问题→\rightarrow→)或者是在上一次(不一定刚刚就是上一支就…...

软件工程师就业前景/班级优化大师下载安装app

一小伙工作快3年了,拿到了阿里云Java开发岗位P6的offer,算HR面一起,加起来有7轮面试了,将近3个月的时间,什么jvm、多线程编程、Linux、网络等方面的面试题,直接面试到自己怀疑人生。而自己跟HR谈论薪资的时…...

湖南做网站公司/seo教学网站

要想在地址栏隐藏url传递的参数,不能直接隐藏,但有几下几个变通的方法. 使用类似Base64编码,将URL参数进行简单加密. 使用框架页; 使用POST方式传递数据; 使用Cookie传递数据; 下面主要介绍模拟表单提交的post方式: function post(URL, PARAMS) {var tem…...

做网站资源/ 今日头条

为什么需要技术KPI 在业务技术团队,有一个不好的趋势,就是团队越来越业务,越来越没有技术味道。每个人都在谈业务,技术大会上在谈业务,周会上在聊业务,周报里写的是业务项目...... 唯独少被谈及的是技术本身…...