У меня есть следующая структура в Golang
type mystruct struct {
Name string
Power int
}
Моя цель - написать функцию, которая принимает в качестве входных данных фрагмент типа * mystuct и возвращает фрагмент типа int, содержащий взятое свойство "Power"из входного среза.
мой код представлен ниже:
package main
import (
"fmt"
)
func main() {
obj := make([]*mystruct, 15)
for i, s := range obj {
s.Power = i
}
fmt.Println(extractpowers(obj))
}
func extractpowers(obj []*mystruct) []int {
powers := make([]int, len(obj))
for i, s := range obj {
powers[i] = s.Power
}
return powers
}
Моя проблема в том, что obj := make([]*mystruct, 15)
создает срезы из 15 * указателей mystruc, инициализированных в ноль;что приводит к тому, что код внутри цикла for вызывает панику типа «недопустимая память или разыменование нулевого указателя».
Мой вопрос заключается в том, как правильно и быстрее всего инициализировать фрагмент;(эквивалент var lst = new List (Of mystruct) в .net)
С уважением.