У меня есть такая структура:
type Headers struct {
header string
valueFromCalculation string
value float64
}
Мне нужно три слайса со значениями для каждого из них:
var headerLabels []string
var values []float64
var valueFromCalculation []string
[January February March April May June July August September TOTAL]
[175 167 148 142 125 114 130 120 30 1151]
[15% 15% 13% 12% 11% 10% 11% 10% 3%]
Теперь я хочу создать новый фрагментЗаголовки, объединяя их.Есть одна проблема, которую, я считаю, я решаю - длина valueFromCalcuation на 1 меньше, чем у остальных срезов
Чтобы создать новый срез, я хочу сделать это:
sliceOfHeaders := []*Headers{}
for i := 0; i <= len(headerLabels); i++ {
headerEntry := new(Headers)
headerEntry.header = headerLabels[i]
headerEntry.value = values[i]
if i == len(headerLabels) {
headerEntry.valueFromCalculation = ""
} else {
headerEntry.valueFromCalculation = valueFromCalculation[i]
}
sliceOfHeaders = append(sliceOfHeaders, headerEntry)
}
Выдает приведенную ниже ошибку :
"паника: ошибка времени выполнения: индекс выходит за пределы диапазона"
Как это может быть?
Я учитываю проблему индекса с длиной valueFromCalculation, которая на единицу меньше, чем другие свойства структуры
Здесь вы можете увидеть выходные данные, прежде чем я захочу запустить свой цикл:
header --> [January February March April May June July August September TOTAL]
value --> [175 167 148 142 125 114 130 120 30 1151]
valueFromCalculation --> [15% 15% 13% 12% 11% 10% 11% 10% 3%]
header length --> 10
value length --> 10
valueFromCalculation length --> 9
Может кто-нибудь помочь мне здесь?Я не вижу, что я делаю неправильно
Я считаю, что длина 3-го свойства на 1 меньше, чем у остальных