我正在使用RobinUS2 / golang-moving-average库来计算移动平均值,但我无法将这些平均值的一部分用于计算多个变量的MA。
ma := []movingaverage.MovingAverage{}
ma[0] = movingaverage.New(15)
ma[0].Add(3.14)
可能有什么不对?我得到索引超出范围错误。谢谢!
答案 0 :(得分:2)
您需要使用
预先调整切片的大小ma := make(movingaverage.MovingAverage, 5)
给出一个容量为5和长度为5的切片,每个条目设置为零值
最好尽管像你一样初始化它,但随后用
添加新条目ma = append(ma, movingaverage.New(15))
如果您知道最终切片的大小,可以使用
预先分配基础数组ma := make(movingaverage.MovingAverage, 0, 5)
这将为您提供一个长度为0但容量为5的片段,这样您就不必重复进行内存分配和移动