Go interface{} 转切片类型的实现方法
作者:_wei丶 发布时间:2024-05-05 09:31:05
标签:Go,interface{},切片
遇到这样一个情况想将变量v转化为[]string类型
var v interface{}
a := []interface{}{"1", "2"}
v = a // v 这时还是interface{} 但其实是个 []interface{}
newValue := v.([]string)
fmt.Println(newValue)
提示:
panic: interface conversion: interface {} is []interface {}, not []string [recovered]
panic: interface conversion: interface {} is []interface {}, not []string
提示我们不能直接换成[]string所以我们先转化为[]interface{}
newValue := v.([]interface{})
fmt.Println(newValue)
打印: [1 50]
然后我们试图将 []interface{} 转化为[]string
newValue := v.([]interface{})
s := newValue.([]string)
fmt.Println(s)
提示:invalid type assertion: newValue.([]string) (non-interface type []interface {} on left)
这里告诉我们只有接口类型的才可以进行断言所以这种方式是错误的
由于切片类型间不能互相直接转化所以需要展开遍历,然后对interface{}进行断言
var v interface{}
var s []string
a := []interface{}{"1", "2"}
v = a // v 这时还是interface{} 但其实是个 []interface{}
for _, val := range v.([]interface{}) {
?? ?s = append(s, val.(string))
}
fmt.Println(s)
到此成功转化完成
总结:
interface{} 就算是个切片类型也不能直接遍历,需要先转化
切片之间不能互相转化
接口类型的才可以进行断言
来源:https://blog.csdn.net/eight_eyes/article/details/119760954


猜你喜欢
- 在前面的文章中介绍了如何用Python读写Excel数据,今天再介绍一下如何用Python修改Excel数据。需要用到xlutils模块。下
- 最近ChatGpt异常火热,访问网站经常会出现1020的错误代码,或无法访问。大概率是因为服务器压力大,网关返回的1020错误码,只能等待官
- 说明:操作系统:Windows Server 2003MySQL版本:5.5.25MySQL程序安装目录:D:\Program Files\
- 下面我们将学习两个项目案例代码,分别解决Excel常见场景中的数据筛选问题和数据匹配问题。数据筛选要求我们在表中筛选出符合条件的数据。数据匹
- 指定的代码页特性无效。 codepage属性:是指出网页的代码页 如果制作的网页脚本与WEB服务端的默认代码页不同,则必须指明代码页: 代码
- 使用itertools工具类中的chain方法,可以很方便的将多个iterable对象一起遍历. 不过,对于dict类型的iterable对
- 摘要在Nginx和uWSGI还没配置时,单独在url.py使用apscheduler设置定时任务,使用python manage.py ru
- 使用opencv将图片转为灰度图主要有两种方法,第一种是将彩色图转为灰度图,第二种是在使用OpenCV读取图片的时候直接读取为灰度图。将彩色
- PromisePromise能够处理异步程序。回调地狱JS中或node中,都大量的使用了回调函数进行异步操作,而异步操作什么时候返回结果是不
- runtime 调度器是个非常有用的东西,关于 runtime 包几个方法:Gosched:让当前线程让出 cpu 以让其它线程运行,它不会
- 在平时开发中我们经常会用到 Webpack这个时下最流行的前端打包工具。它打包开发代码,输出能在各种浏览器运行的代码,提升了开发至发布过程的
- Go mod开启 Go Modulego env -w GO111MODULE=on或set GO111MODULE=on设置Go Prox
- 项目结构如下:开始时在setting.py中设置如下;html文件中的写法如下:这样设置一直无法加载静态文件,只需要修改setting.py
- 在Python中,很多对象都是可以通过for语句来直接遍历的,例如list、string、dict等等,这些对象都可以被称为可迭代对象。至于
- aspImage是ServerObjects站点上非常好的一个组件,它可以使我们利用Asp实现很多对于图形的处理功能,他的功能强大,如果你需
- 概念所有Python的对象都是扩展的PyObject,python的垃圾回收机制是计算引用,这个对象中定义了py_ssize就是用来做这个事
- 在页面中的链接除了常规的方式以外,如果使用javascript,还有很多种方式,下面是一些使用javascript,打开链接的几种方式:1.
- 1.前言在移动商业广告的测试的工作中,经常会需要对广告请求进行捕获和分析,常使用的有两个测试工具:fiddler,Charles,这两个工具
- 1:php地址 http://127.0.0.6/?c=json2:java 输出的结果是[{"i
- 本文实例讲述了Python实现生成随机数据插入mysql数据库的方法。分享给大家供大家参考,具体如下:运行结果:实现代码:import ra