我正在使用 RobinUS2/golang-moving-average 库来计算移动平均数,但我无法将这些平均数的一部分组合起来以计算多个变量的 MA。
ma := []movingaverage.MovingAverage{}
ma[0] = movingaverage.New(15)
ma[0].Add(3.14)
有什么问题吗?我得到一个索引超出范围的错误。谢谢!
最佳答案
您需要预先调整 slice 的大小
ma := make(movingaverage.MovingAverage, 5)
给出容量为 5、长度为 5 的 slice ,每个条目都设置为零值
最好像你一样初始化它,然后添加新条目
ma = append(ma, movingaverage.New(15))
如果您知道最终的 slice 有多大,您可以使用
预先分配底层数组ma := make(movingaverage.MovingAverage, 0, 5)
这将为您提供长度为 0 但容量为 5 的 slice ,因此您不必重复进行内存分配和移动
关于go - 尝试创建 MovingAvarage 类型的 slice ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45765046/