我有一个这样的结构:
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%]
现在我想通过组合这些来创建一个新的 Headers 片段。有一个问题,我相信我正在解决 - 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
请问有人可以帮我吗?我看不出我做错了什么
我正在考虑第三个属性的长度比其余属性少 1
素胚勾勒不出你
相关分类