golang pass在args(一段字符串)中表示为;args。。。接口{}";

golang pass在args(一段字符串)中表示为;args。。。接口{}";,go,Go,这是我的代码: package main import ( "database/sql" ) func main() { table := "some table" args := []interface{}{"string1", "string2", "string3", "string4"} _, err := db.Exec( "INSERT INTO" + table + "VALUES('', ?, ?, ?, ?)", args)

这是我的代码:

package main

import (
    "database/sql"
)

func main() {
    table := "some table"

    args := []interface{}{"string1", "string2", "string3", "string4"}

    _, err := db.Exec( "INSERT INTO" + table + "VALUES('', ?, ?, ?, ?)", args)
        if err != nil {
            return err
        }
}
我想传入args,但无法将其格式化为
“args…interface{}”

电流输出为:

package main

import (
    "database/sql"
)

func main() {
    table := "some table"

    args := []interface{}{"string1", "string2", "string3", "string4"}

    _, err := db.Exec( "INSERT INTO" + table + "VALUES('', ?, ?, ?, ?)", args)
        if err != nil {
            return err
        }
}
sql:转换Exec参数#0的类型:不支持的类型[]接口{},一个切片


提前谢谢

db.Exec
调用中,使用
args…
而不是
args

使用
操作符来扩展args切片。这不起作用,我仍然会收到相同的错误:sql:转换Exec参数#0的类型:不支持的类型[]接口{},切片请发布一个最小的、可验证的示例,以便我们可以帮助您。由于该示例运行良好,并且只有db.Exec引起了问题,因此我决定使用不同的方法,感谢您的时间和努力:)@Andy Schweig解决了问题。您提供的示例与您所想的不同,您传递给insert函数的参数仅被视为一个元素,因为它没有展开。