Go 语言中 switch 类型断言用法
Author mogd 2022-05-09
Update mogd 2022-05-09
AdageDon't live in the past.
目录
- Go 语言中 switch 类型断言的用法
- 原因
- 错误例子
- 推荐语法
Go 语言中 switch 类型断言的用法
Go 语言官方有推荐的编码规范,在这里记录一次编码中 switch 进行类型断言判断的标准用法
使用类型断言的建议是复用结果,而不是直接使用
原因
在一次编码中,vscode 出现一个黄色的警告 (不必要的类型断言):
assigning the result of this type assertion to a variable (switch docs := docs.(type)) could eliminate type assertions in switch cases
修改方法很简单,就是将类型断言的结果赋值给变量,而不是直接使用,否则可能触发 panic
错误例子
switch docs.(type) {case []interface{}:// Triggers a panic as "docs" doesn't hold// concrete type "interface" but "[]interface"fmt.Println(x.([]interface{}))
}
推荐语法
不要在
switch
语句中每次都使用类型断言,而是将类型断言的结果分配给变量并使用
类型断言提供对接口底层具体值访问
如果不将类型断言结果分配给变量,可能会触发panic
switch docs := docs.(type) {case []interface{}:// Triggers a panic as "docs" doesn't hold// concrete type "interface" but "[]interface"fmt.Println(docs)
}
Go 语言中 switch 类型断言用法相关推荐
- c语言中switch的用法是什么?
c语言中switch的用法是: 功能:switch语句是多分支选择语句.用来实现多分支选择结构.if语句只有两个分支可供选择,而实际问题中常常要用到多分支的选择.例如,学生成绩分类(90为" ...
- c语言中switch扑克牌花色,c语言中switch的用法
c语言中switch的用法 c语言中switch的用法的用法如下:C语言还提供了另一种用于多分支选择的switch语句, 其一般形式为:switch(表达式){case 常量表达式1: 语句1;cas ...
- c语言中 char怎样用,C语言中char*和char[]用法区别分析
C语言中char*和char[]用法区别分析 本文实例分析了C语言中char* 和 char []的区别.分享给大家供大家参考之用.具体分析如下: 一般来说,很多人会觉得这两个定义效果一样,其实差别很 ...
- c语言中switch结构,switch结构c语言
C语言中switch结构的使用 用switch结构编制程序,输入1个学生的C语言课程考试成绩(百分制整形数因为case后面不能接范围,也就是说case后面是一个确实固定的常量.用下面的方法比较好, # ...
- scanf在c语言中的作用,c语言中scanf的基本用法
前言 scanf()是C语言的格式输入函数,和printf函数一样被声明在stdio.h头文件中,它的基本使用很简单: 1 int a; 2 scanf("%d",&a); ...
- c语言time函数的作用,c语言中time函数的用法
c语言中time函数的用法 c语言中time函数的用法的用法你知道吗?下面应届毕业生小编就跟你们详细介绍下c语言中time函数的用法的用法,希望对你们有用. c语言中time函数的用法的用法如下: 头 ...
- sizeof 在C语言的作用,C语言中的sizeof的用法详解
C语言中的sizeof的用法详解 一.sizeof的概念 sizeof是C语言的一种单目操作符,如C语言的其他操作符++.--等.它并不是函数.sizeof操作符以字节形式给出了其操作数的存储大小.操 ...
- C语言中定义常量的关键字是什么,C++_详解C语言中const关键字的用法,关键字const用来定义常量,如 - phpStudy...
详解C语言中const关键字的用法 关键字const用来定义常量,如果一个变量被const修饰,那么它的值就不能再被改变,我想一定有人有这样的疑问,C语言中不是有#define吗,干嘛还要用const ...
- c语言中rand()的作用,c语言中的rand()函数用法
rand() rand()函数作用:用来产生随机数,但是,rand()的内部实现是用线性同余法实现的,是伪随机数,由于周期较长,因此在一定范围内可以看成是随机的. rand()函数返回:返回一个范围在 ...
最新文章
- 程序员因开发速度太慢而遭公司起诉,索赔金额高达90万!
- java 数据反射_基本操作--反射填充数据
- 哪些模块可用于python性能分析_Python调用C模块以及性能分析
- 用python实现语音的传输功能_用Python打造一款智能语音聊天小软件!
- 华清远见智能小车视频服务器,华清远见版世界杯足球对抗赛,智能小车C位出道...
- FetchAI Case Study
- 在VS Code中直接调试Web程序,是怎样一种体验?
- 字符串匹配之KMP---全力解析
- js模块的封装(-)
- JAVA语言基础-面向对象(方法重写概述及其应用)
- sylixos pci
- 实现类去实现接口的时候,将接口的注释一起重写出来设置
- Ubuntu安装deb包
- 宝塔面板配置服务器代理
- SMAP数据产品介绍与下载方法
- 美团2024届暑期实习第一轮后端笔试详解
- CString怎么转成LPVOID的问题 vc/mfc
- html代码多媒体播放器,6 个基于 HTML5 实现的多媒体播放器
- 会Vue还有必要学React吗?
- 常数和基本初等函数导数公式推导