golang 编译提示 cannot assign interface {} 和golang断言使用
golang 编译提示 cannot assign interface {} 和golang断言使用:
从sync.Map中读取值的时候出现如下编译错误,因为返回的是interface类型,需要做转换才能使用,golang提供了类型断言来实现这类转换:
(type interface {} is interface with no methods)
格式如下:
t := i.(T)
这个表达式意思是接口i是T类型,并将它的值赋值给t。
如果i不是类型T,则这样写会引起panic。为了防止panic,可能写成下面这样:t, ok := i.(T)
如果接口i的类型是T,则ok则为true,否则为false。
用例:
package mainimport "fmt"func main() {var i interface{} = "hello"s := i.(string)fmt.Println(s)s, ok := i.(string)fmt.Println(s, ok)f, ok := i.(float64)fmt.Println(f, ok)f = i.(float64) // panicfmt.Println(f)
}
运行结果:
参考文档:
1. https://tour.golang.org/methods/7
2. https://www.cnblogs.com/xiaopipi/p/4889212.html
golang 编译提示 cannot assign interface {} 和golang断言使用相关推荐
- golang编译错误 copying /tmp/go-build069786374/b001/exe/a.out: No such file or directory 解决方法
问题: linux虚拟机 golang编译 报错 copying /tmp/go-build069786374/b001/exe/a.out: No such file or directory 原因 ...
- golang编译之vendor机制
原文地址:golang编译之vendor机制 Go 1.5引入了vendor 机制,但是需要手动设置环境变量 GO15VENDOREXPERIMENT= 1,Go编译器才能启用.从Go1.6起,,默认 ...
- golang编译时报错:Get “https://proxy.golang.org/github.com/antihax/optional/@v/v1.0.0.mod“: dial tcp 172.2
一.问题 golang编译grpc-gateway时,报错: 二.解决 一行代码设置搞定 go env -w GOPROXY=https://goproxy.cn
- 【Golang第1~3章:基础】如何安装golang、第一个GO程序、golang的基础
介绍 本人是个菜鸡,这个是在B站上看边看视频边做的笔记,这一章是编程语言的基础 有变量.常量.数据类型.指针.标识符.运算符.流程控制,具体请看[文章目录] 配套视频自己去B站里面搜[go语言],最高 ...
- 爱上开源之golang入门至实战-使用IDE开发Golang
使用IDE开发Golang 上一节,使用文本编辑器,我们开启了golang之旅,除了通过文本编辑器的方式来进行程序开发,我们还可以通过使用golang的集成开发环境工具(IDE)来进行更高效率,更快速 ...
- golang 实践配合 php 进行 web 开发,golang 适合做web开发吗
使用go语言来做web开发,是非常方便的.如果不使用框架,仅仅使用net/http包,也能快速开发一个web应用.但是,官方包不支持RESTful风格的API,所以我们依然还是需要选择一个框架来帮助我 ...
- Xamarin.iOS项目编译提示Could not AOT the assembly
Xamarin.iOS项目编译提示Could not AOT the assembly 错误信息:Could not AOT the assembly **************.dll 这个错误是 ...
- Xamarin.Android编译提示找不到mscorlib.dll.so文件
Xamarin.Android编译提示找不到mscorlib.dll.so文件 错误信息:AOT module 'mscorlib.dll.so' not found: Cannot load lib ...
- 使用ASIHTTPRequest 编译提示找不到libxml/HTMLparser.h的解决方法
使用ASIHTTPRequest xcode编译提示找不到"libxml/HTMLparser.h",解决方法如下: 1>.在xcode中左边选中项目的root节点,在中间编 ...
最新文章
- 与http协作的web服务器、http首部(第五章、第六章)
- 5 大常用机器学习模型类型总结
- 解决问题的反馈机制_谈谈HBase中的Nonce机制
- atob和btoa的趣谈
- 语音处理入门——语音的声学处理
- java循环队列_Java 循环队列的实现
- 算法总结系列之八:复读机的故事 - 散列表.NET应用的研究(下集)
- 微信小程序想通过场景化缩短路径
- python读取rtf文件_基于 RTF specification v1.7 的 RTF 文件解析及 OLE 对象提取(使用 Python 开发)...
- 静默安装Oracle19c软件与数据库
- C# 复数类 Complex
- Java基础知识与集合部分面试题整理
- 实用一位加法电路-全加器(全加器真值表、全加器的逻辑组合电路)、几种基本组合逻辑电路真值表 补充:逻辑电路基础:与门、或门、非门----计算机组成原理
- 快递单号查询物流筛选出代收单号
- mybatis对布尔类型的处理
- 什么是Oauth2.0授权,四种授权模式
- 相关性系数替代模型预测得分
- 判断FTP文件是否传输完成
- 【百度网盘安装不了怎么办】
- 【x86架构】架构基础
热门文章
- ubuntu多节点安装kubernetes
- 【leetcode】3 minstack
- 兼容Mono的下一代云环境Web开发框架ASP.NET vNext
- MFC遍历窗体所有的控件
- .Net Discovery系列之十一-深入理解平台机制与性能影响 (中)
- 用反向传导模拟共振并用共振频率作分类
- 安徽师范大学计算机专业导师,安徽师范大学数学计算机科学学院导师介绍:罗永龙...
- 可以用JAVA编程的物联网开发板,了解一下?
- 罗永浩直播带货观后感!首秀破纪录,罗永浩直播带货清单及感受
- 【PC工具】windows批处理脚本一键bat脚本编辑器,bat转exe工具使用方法,附helloworld参考例程...