我正在学习Go编程并尝试测试以下average功能:func average(xs []float64) float64 { total := 0.0 for _, v := range xs { total += v } return total / float64(len(xs))}我试图通过以下方式生成一段随机浮点数:var xs []float64for n := 0; n < 10; n++ { xs[n] = rand.Float64()}然而,我得到了panic: runtime error: index out of range题:如何在 Golang 中生成一段随机数?表达式或函数调用是否xs := []float64 { for ... }允许在切片文字中使用?
2 回答
繁星coding
TA贡献1797条经验 获得超4个赞
您的解决方案仍然会在每次运行时为您提供相同的数组,因为您没有传递随机种子。我会做这样的事情:
package main
import (
"fmt"
"math/rand"
"time"
)
func main() {
s := rand.NewSource(time.Now().UnixNano())
r := rand.New(s)
xn := make([]float64, 10)
for n := 0; n < 10; n++ {
xn[n] = r.Float64()
}
fmt.Println(xn)
}
- 2 回答
- 0 关注
- 147 浏览
添加回答
举报
0/150
提交
取消