我在 go 中使用go-redis從 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)}在第一次打印中,它可以獲得正確的數據:37907613574562269007但第二次打印全為 0:0000如果不轉換為 int,則為字符串:cannot use ID (type string) as type int in argument所以我想用它作為一個整數。我在 go 中使用純列表進行了測試:var a [4]stringa[0] = "1"a[1] = "2"a[2] = "3"a[3] = "4"for _, i := range a { id, _ := strconv.Atoi(i) fmt.Println(id)}它可以在不單獨使用新行的情況下工作:1234所以go-redis'.LRange("ID", 0, -1).Result()不僅返回字符串。 https://godoc.org/github.com/go-redis/redis#Client.LRange 是*StringSliceCmd. 那怎么轉換呢?
1 回答

繁星coding
TA貢獻1797條經驗 獲得超4個贊
那是因為類型不對。
.LRange("ID", 0, -1).Result()
返回[]string
。應將其轉換為ids := strings.Fields(strings.Join(IDs, ""))
then 循環 ID。
- 1 回答
- 0 關注
- 151 瀏覽
添加回答
舉報
0/150
提交
取消