Go 调用中的参数太多
我正在尝试使用将db数据加载到redis群集 当我尝试接受的解决方案时,即Go 调用中的参数太多,go,redis,Go,Redis,我正在尝试使用将db数据加载到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)
} 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 {})
说到离开,我是个新手。因此,围棋老手们可以看看这个问题并提出解决方案吗?在围棋中,你可以使用一个切片作为可变参数。但是,切片必须包含传递给函数所需的所有参数。不能展开切片并传递其他参数 因此,您的代码应该类似于:
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...))