go - 如何在 Go 中分配一片 float ?

标签 go

我正在学习 Go 编程并尝试测试以下 average 函数:

func average(xs []float64) float64 {
    total := 0.0
    for _, v := range xs {
        total += v
    }
    return total / float64(len(xs))
}

我尝试通过以下方式生成一段随机 float :

var xs []float64
for n := 0; n < 10; n++ {
    xs[n] = rand.Float64()
}

但是,我得到了

panic: runtime error: index out of range

问题:

  1. 如何在Golang中生成一段随机数?
  2. slice 字面量中是否允许表达式或函数调用,如 xs := []float64 { for ... }

最佳答案

您生成随机数的方法很好,但是 xs 是空的,Go 不会自动扩展 slice 。你可以使用 append ,但是由于您事先知道大小,因此最有效的方法是替换

var xs []float64

xs := make([]float64, 10)

最初会给出正确的尺寸。

关于go - 如何在 Go 中分配一片 float ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33632365/

相关文章:

ubuntu - 在 Ubuntu 上正确安装 Go 时遇到问题

arrays - 为什么 slice 变量在一遍又一遍地分配时不会被覆盖?

google-app-engine - appengine 随机提供旧文件

go - 如何在方法中包装http.Handler

regex - 随机生成器匹配正则表达式?

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

go - 我如何让 "go get"在网络上而不是在我的计算机上查看

go - 在 Go 中解码为结构时的奇怪行为

python - 为什么 Go 的 map 迭代顺序在打印时会发生变化?

go - Go 中的函数调用、赋值和 'underlying types'