我在go中使用红葡萄酒从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)
}在第一次打印时,它可以获得正确的数据:
37907
61357
45622
69007但是第二张指纹得到了全部0:
0
0
0
0如果不转换为int,则为string:
cannot use ID (type string) as type int in argument所以我想用它作为一个整数。
我用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)
}它不需要单独使用新行即可工作:
1
2
3
4所以go-redis的.LRange("ID", 0, -1).Result()不仅返回字符串。https://godoc.org/github.com/go-redis/redis#Client.LRange是*StringSliceCmd。那么如何解析它呢?
发布于 2021-01-06 00:11:35
是因为错误的类型。
.LRange("ID", 0, -1).Result()返回[]string。应该将其转换为ids := strings.Fields(strings.Join(IDs, "")),然后循环It。
https://stackoverflow.com/questions/65575665
复制相似问题