gpt4 book ai didi

go - 调用中的参数过多

转载 作者:IT王子 更新时间:2023-10-29 02:11:33 26 4
gpt4 key购买 nike

我正在尝试使用 mysql2redis 将数据库数据加载到 Redis 集群.

当我尝试接受的解决方案时,即

} else if e.Command == "HMSET" {
// Build up a string slice to hold the key value pairs
args := make([]string, 0, len(e.MapData) * 2)
for k, v := range e.MapData {
args = append(args, k, v)
}
_,err := redis.StringMap(client.Do("HMSET", e.Key, args...))
checkErr(err, "hmset error:")
}

我得到以下异常,

too many arguments in call to client.Do
have (string, string, []string...)
want (string, ...interface {})

我是 Go 的新手。那么围棋老手能否看看这个并提出解决方案?

最佳答案

在 Go 中,您可以使用 slice 作为可变参数。但是, slice 必须包含您需要传递给函数的所有参数。您不能展开 slice 并同时传递其他参数。

因此你的代码应该是这样的:

args := make([]interface{}, 0, len(e.MapData) * 2 + 1)
args = append(args, e.Key)
for k, v := range e.MapData {
args = append(args, k, v)
}
_,err := redis.StringMap(client.Do("HMSET", args...))

关于go - 调用中的参数过多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45278840/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com