row
- это ломтик map[string]interface{}
.Вы должны указать длину при инициализации среза следующим образом:
row := make([]map[string]interface{}, 0)
Индекс среза ДОЛЖЕН быть целым числом, поэтому вы сталкиваетесь со второй проблемой, упомянутой в вашем комментарии.
Давайте предположим, serverList
это кусок.Ваш код может быть изменен как:
rows := make([]map[string]interface{}, 0) // create a slice
// ... codes omitted
for _, s := range serverList {
row := make(map[string]interface{}) // create an item
row["ID"] = s.ID
row["Name"] = s.Name
// ... codes omitted
row["Flavor"] = s.Flavor
row["Created"] = time.Now().Sub(t)
row["Status"] = s.Status
rows = append(rows, row) // append the item to the slice
}
return rows, err