Вот рабочее решение вашей проблемы.Обратите внимание, что ваш массив results
был объявлен неправильно.Ниже вы можете найти рабочее решение, в котором tagsList
не относится к типу array
, но использует срез, инициализированный функцией make()
.Я бы предложил использовать слайсы, так как массивы являются типами значений и поэтому всегда копируются при передаче или установке под новыми переменными.Срезы - это просто ссылки (то есть указатель) на базовые массивы, которые имеют различные преимущества с точки зрения производительности, если массив увеличивается с течением времени.
package main
import (
"fmt"
)
type saveDetails struct {
ID string
Grade string
Regular string
OpeningKey string
}
func main() {
tagsList := make([]saveDetails, 0) // 0 is the initial size of the slice
results := []saveDetails{{"1000000001", "A", "Regular", "JOBOp123"}, {"1000000002", "B", "Regular", "JOBOp234"}, {"1000000003", "C", "Regular", "JOBOp456"}}
for _, details := range results {
tagsList = append(tagsList, saveDetails{ID: details.ID, Grade: details.Grade, Regular: details.Regular, OpeningKey: details.OpeningKey})
}
fmt.Println("saveDetails :", tagsList)
}
https://play.golang.org/p/Josvx49tNf6