dsf487787 2015-11-25 06:00 采纳率: 100%
浏览 3296
已采纳

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

我是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条回答 默认 最新

  • drix47193 2015-11-25 07:33
    关注

    I know from your other questions that you are asking about Redigo. Use the redis.Strings function to get the reply from the server as a []string:

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

    The variabile s is a []string.

    See the documentation about reply helpers for more information.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)
编辑
预览

报告相同问题?