尝试创建 MovingAvarage 类型的切片

Trying to create slice of type MovingAvarage

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

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

有什么问题吗?我得到一个索引超出范围的错误。谢谢!

您需要使用

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

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

最好像您一样初始化它,然后使用

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

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

预分配底层数组
ma := make(movingaverage.MovingAverage, 0, 5)

这将为您提供长度为 0 但容量为 5 的切片,因此您不必重复进行内存分配和移动