如何使用接口填充切片?

APi*_*als -3 interface go slice

我知道我可以用字符串填充 Go 切片strings := []string{"something", "something else"},但是除了接口之外我怎么能做同样的事情呢?我尝试了以下方法:

data := []interface{}{{ID: "123"}, {ID: "456"}}
Run Code Online (Sandbox Code Playgroud)

并得到以下错误:

missing type in composite literal
Run Code Online (Sandbox Code Playgroud)

我也尝试使用这样的结构:

type Users struct {
    ID string
}

[]Users{{ID: "123"}, {ID: "456"}}
Run Code Online (Sandbox Code Playgroud)

哪个有效,但是mongoInsertMany函数需要一个[]interface{}参数:

cannot use users (type []Users) as type []interface {} in argument to database.InsertMany
Run Code Online (Sandbox Code Playgroud)

我如何定义和填充一个[]interface{}

Adr*_*ian 5

正如错误所说,您缺少复合文字中的类型:

data := []interface{}{Users{ID: "123"}, Users{ID: "456"}}
Run Code Online (Sandbox Code Playgroud)

应该可以工作,因为它不会丢失复合文字中的类型。