将结构的字段切片为可变参数
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 上试用。
我的应用程序有一个这样的结构片段
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 上试用。