试图创建MovingAvarage类型的切片

时间:2017-08-18 21:05:34

标签: go slice moving-average

我正在使用RobinUS2 / golang-moving-average库来计算移动平均值,但我无法将这些平均值的一部分用于计算多个变量的MA。

ma := []movingaverage.MovingAverage{}
    ma[0] = movingaverage.New(15)
    ma[0].Add(3.14)

可能有什么不对?我得到索引超出范围错误。谢谢!

1 个答案:

答案 0 :(得分:2)

您需要使用

预先调整切片的大小
ma := make(movingaverage.MovingAverage, 5)

给出一个容量为5和长度为5的切片,每个条目设置为零值

最好尽管像你一样初始化它,但随后用

添加新条目
ma = append(ma, movingaverage.New(15)) 

如果您知道最终切片的大小,可以使用

预先分配基础数组
ma := make(movingaverage.MovingAverage, 0, 5)

这将为您提供一个长度为0但容量为5的片段,这样您就不必重复进行内存分配和移动