I'm using go-redis in go to get list data from Redis.
IDs, err := redisClient.LRange("ID", 0, -1).Result()
if err != nil {
panic(err)
}
fmt.Println(IDs)
for _, ID := range IDs {
id, _ := strconv.Atoi(ID)
fmt.Println(id)
}
In the first print, it can get right data:
37907
61357
45622
69007
But the second print got all 0:
0
0
0
0
If don't convert to int, it's string:
cannot use ID (type string) as type int in argument
So I want to use it as an integer.
I tested with a pure list in go:
var a [4]string
a[0] = "1"
a[1] = "2"
a[2] = "3"
a[3] = "4"
for _, i := range a {
id, _ := strconv.Atoi(i)
fmt.Println(id)
}
It can work without separate with new line:
1
2
3
4
So the go-redis
's .LRange("ID", 0, -1).Result()
returns not only string. https://godoc.org/github.com/go-redis/redis#Client.LRange It's *StringSliceCmd
. How to conver it then?
It was because of wrong type.
.LRange("ID", 0, -1).Result()
returns []string
. It should be converted to ids:= strings.Fields(strings.Join(IDs, ""))
then loop ids.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.