我是redigo從Go連接到redis數據庫。 如何將[]interface {}{[]byte{} []byte{}}
類型轉換爲一組字符串?在這種情況下,我想獲得兩個字符串Hello
和World
。redigo,SMEMBERS,如何獲取字符串
package main
import (
"fmt"
"github.com/garyburd/redigo/redis"
)
func main() {
c, err := redis.Dial("tcp", ":6379")
defer c.Close()
if err != nil {
fmt.Println(err)
}
c.Send("SADD", "myset", "Hello")
c.Send("SADD", "myset", "World")
c.Flush()
c.Receive()
c.Receive()
err = c.Send("SMEMBERS", "myset")
if err != nil {
fmt.Println(err)
}
c.Flush()
// both give the same return value!?!?
// reply, err := c.Receive()
reply, err := redis.MultiBulk(c.Receive())
if err != nil {
fmt.Println(err)
}
fmt.Printf("%#v\n", reply)
// $ go run main.go
// []interface {}{[]byte{0x57, 0x6f, 0x72, 0x6c, 0x64}, []byte{0x48, 0x65, 0x6c, 0x6c, 0x6f}}
// How do I get 'Hello' and 'World' from this data?
}
我得到以下錯誤:'redigo:字符串的意外類型,從上面的行中獲得了type [] interface {}'... – topskip
@topskip:可能沒有必要說這個,因爲這個問題已經有了答案,但未解決的類型錯誤可能是因爲您插入的是接口片而不是接口。如果你已經通過一些接口枚舉並使用了redis.String,它可能會正常工作。 – bleakgadfly