我正在使用以下代码在为学习Go而构建的API中将查询的执行包装在postgres数据库上。
UISegmentedControl
我的问题是,根据文档,db.Query()方法接受查询strgin,否则接受... interface {}参数。尝试添加第二个参数 params ... interface {}传递给我的函数参数,并将params作为第二个参数传递给DB.Query方法,但这不起作用。仅当我专门从接口切片中拉出参数时,它才似乎有效。 有什么建议吗?
答案 0 :(得分:2)
我通过查找SQL模块的源代码并查看它是如何在db.Query()方法中实现的来解决的。 您将省略号添加到slice参数的末尾以通过它。就像参数...
答案 1 :(得分:1)
This可能会帮助您
可变参数函数可以按通常的方式使用单个参数来调用。 如果切片中已经有多个arg,请使用
将其应用于可变参数func(slice...)
如果要从切片发送data
,只需添加省略号:
rows, err := db.Query(qstring, data...)
if err != nil {
log.Fatal(err)
}
如果您将值分成不同的变量:
rows, err := db.Query(qstring, val1, val2, val3, valN)
if err != nil {
log.Fatal(err)
}