开发者社区> 问答> 正文

golang 可变参数函数的传递问题?报错

@astaxie 你好,想跟你请教个问题:

在我的应用中使用了github.com/garyburd/redigo/redis框架访问redis,为了能通用,我把原框架中的Do方法做了层封装,代码如下:

func (rc *RedisInfo) MyDo(cmd string, args ...interface{}) (interface{}, error) {
	if rc.c == nil {
		rc.reconnect()
	}
	return rc.c.Do(cmd, args)
}
但在调用时redis报参数错误。后来我分析了一下,我调MyDo方法后,args接收到的动态参数被转为了数组,再调Do方法时args其实是传的数组,这样的话肯定报错了。

请教,向这种动态参数函数的封装,我应该怎么来写?

展开
收起
爱吃鱼的程序员 2020-06-22 17:47:23 473 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    <spanstyle="font-family:Consolas,'BitstreamVeraSansMono','CourierNew',Courier,monospace;line-height:14.65625px;background-color:#FFFFFF;">rc.c.Do(cmd,args...)rc.c.Do(cmd,args...)非常感谢 傅小黑<spanstyle="font-size:12px;line-height:normal;">和astaxie!谢大侠居然会来oschina,意外。

    2020-06-22 17:47:40
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
阿里开发者手册-Golang专题 立即下载
Golang 微服务在腾讯游戏用户运营领域的探索及实践 立即下载
低代码开发师(初级)实战教程 立即下载

相关镜像