go - 尝试创建 MovingAvarage 类型的 slice

标签 go slice moving-average

我正在使用 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/

相关文章:

C++矩阵模板类切片

java - 移动平均/总算法

python - Dataframe.rolling().mean不计算移动平均值

r - 如何在 R 中拟合 VARMA 时间序列模型?

go - 获取 os.exec 的输出以显示执行命令的进度

go - kubectl 如何配置 CRD?

git - 如何创建 pull 请求或 merge PR

python - 如何将 dicom 图像分割成图 block ?

go - Doom Emacs 中对 golang 的完整 IDE 功能支持

javascript - 拼接改变我的初始数组