为了账号安全,请及时绑定邮箱和手机立即绑定

在 Golang 中将 interface{} 转换为 []string

在 Golang 中将 interface{} 转换为 []string

Go
吃鸡游戏 2021-11-22 19:26:16
我是 GO 语言的新手,我试图从一个返回两个字符串的函数中获取一个值,即 [str1, str2] ret, err := fun1(....)而函数的原型是func fun1(...) (interface{}, error)我打印ret,它是[[57 57 56 56] [97 100 98 49 57 55 102 98 49 101 57 48 52 98 102 56 55 102 52 56 57 57 55 54 49 55 101 57 49 100 98 49]]看起来像类型[][]uint8,所以,我试过这种方式    v, _ := ret.([][]uint8)    str1, _ := strconv.Atoi(string(v[0]))    str2, _ := strconv.Atoi(string(v[1]))它失败了,v 是 []我也试过:   v, _ := ret.([]string)没有改变如何解决这个问题?任何帮助将不胜感激 :)PS:我调试发现第一个字符串是 "9988"
查看完整描述

2 回答

?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

我从你的其他问题中知道你在问 Redigo。使用redis.Strings函数从服务器获取作为 []string 的回复:

s, err := redis.Strings(fun1(....))

变量s是一个 [] 字符串。

有关更多信息,请参阅有关回复助手文档


查看完整回答
反对 回复 2021-11-22
?
翻翻过去那场雪

TA贡献2065条经验 获得超13个赞

你有一片切片,你需要将每个切片转换成你想要的。假设它们是字节并且您想打印切片中的每个字符串,然后:


ret, err := fun1(....)

if err != nil {

     panic(err)

}

for idx, val := range ret.([][]byte) {

     fmt.Println("At idx", idx, "string:", string(val))

}

以上数据示例:https : //play.golang.org/p/VsZhSaGmQk


查看完整回答
反对 回复 2021-11-22
  • 2 回答
  • 0 关注
  • 200 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信