首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么不能用go-redis得到的值将字符串转换为int?

为什么不能用go-redis得到的值将字符串转换为int?
EN

Stack Overflow用户
提问于 2021-01-05 08:49:37
回答 1查看 1.2K关注 0票数 0

我在go中使用红葡萄酒从Redis获取列表数据。

代码语言:javascript
复制
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)
}

在第一次打印时,它可以获得正确的数据:

代码语言:javascript
复制
37907

61357

45622

69007

但是第二张指纹得到了全部0:

代码语言:javascript
复制
0

0

0

0

如果不转换为int,则为string:

代码语言:javascript
复制
cannot use ID (type string) as type int in argument

所以我想用它作为一个整数。

我用go中的纯列表进行了测试:

代码语言:javascript
复制
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)
}

它不需要单独使用新行即可工作:

代码语言:javascript
复制
1
2
3
4

所以go-redis.LRange("ID", 0, -1).Result()不仅返回字符串。https://godoc.org/github.com/go-redis/redis#Client.LRange*StringSliceCmd。那么如何解析它呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-06 00:11:35

是因为错误的类型。

.LRange("ID", 0, -1).Result()返回[]string。应该将其转换为ids := strings.Fields(strings.Join(IDs, "")),然后循环It。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65575665

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档