将结构的字段切片为可变参数

Slice of a struct's field to variadic

我的应用程序有一个这样的结构片段

type ItemOrder struct {
    ItemId
    ...
}

var items = []*ItemOrder

和接受 ...int

的可变参数函数
func ItemIds(lang string, ids ...int){
...

如何从 items []*ItemOrder 切片中获取所有 itemId 并将其提供给可变参数函数?像

itemsPB, err := ItemIds("", items[:].itemId)

Abov 不起作用,因为我没有为切片提供从中提取 itemId 的位置。

您必须为 ID 创建一个新切片,并使用循环来填充它。没有捷径。

例如:

ids := make([]int, len(items))
for i, item := range items {
    ids[i] = item.ItemId
}
ItemIds("en", ids...)

Go Playground 上试用。