GO--redis redigo hel 删除多个参数的传值方法

某天写个需求,需要redis hdel多个参数
很自然就想到了go的多参数传递,语法糖…(不熟悉…的同学可以看下这篇文章《了解golang的可变参数(… parameters),这一篇就够了》,简单的说它的效果,就是把一个数组里的多个参数劈开,一个个儿的用逗号分隔的方式传进去,del(…int) == del(int1, int2, int3))
我的代码如下:
delStr := []int{1, 2, 3}

func hDel(keyName string, delStr ...int) {
	res, err := conn.Do("hdel", keyName, delStr)
}

hDel("abc", delStr...)

发现上面的用法根本不行,完全不起作用!!!

于是翻了redigo的文档 ,发现有这么一个方法 : AddFlat

GO--redis redigo hel 删除多个参数的传值方法_第1张图片

看不懂,翻译一下吧:

GO--redis redigo hel 删除多个参数的传值方法_第2张图片

看起来貌似是和…一样的用法,于是就试了一下,将代码改成:

delStr := []int{1, 2, 3}

func hDel(keyName string, delStr []int) {
	res, err := conn.Do("hdel", redis.Args{}.Add(keyName).AddFlat(delStr)...)
}

hDel("abc", delStr)

结果成功删除。

以上是个人乱蒙结果,希望能给同样搬砖的你们一点帮助。

你可能感兴趣的:(go)