Срез поля структуры в вариа - PullRequest
1 голос
/ 07 июля 2019

В моем приложении есть фрагмент структуры, такой как

type ItemOrder struct {
    ItemId
    ...
}

var items = []*ItemOrder

И вариадная функция, принимающая ...int

func ItemIds(lang string, ids ...int){
...

Как я могу взять все itemIds из среза items []*ItemOrder и передать его в функцию variadic? Что-то вроде

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

Abov не работает, потому что я не даю срезу позицию для извлечения itemId.

1 Ответ

5 голосов
/ 07 июля 2019

Вы должны создать новый фрагмент для идентификаторов и использовать цикл для его заполнения. Там нет ярлыка.

Например:

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

Попробуйте на Go Playground .

...