Estoy redigo para conectarse desde Ir a una base de datos redis. ¿Cómo puedo convertir un tipo de []interface {}{[]byte{} []byte{}}
en un conjunto de cadenas? En este caso me gustaría obtener las dos cadenas Hello
y World
.redigo, SMEMBERS, cómo obtener cadenas
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?
}
Aparece el siguiente error: 'redigo: tipo inesperado para Cadena, tiene el tipo [] interfaz {}' de la línea anterior ... – topskip
@topskip: Probablemente no sea necesario decir esto ya que esta pregunta ya tiene una respuesta, pero el error de tipo no ejecutado probablemente se debe a que está insertando un segmento de interfaces en lugar de solo la interfaz. Si hubieras enumerado a través de la porción de interfaces y utilizara redis.String, probablemente funcionaría bien. – bleakgadfly