在go中动态初始化数组大小

我尝试用go编写一个小型应用程序,该应用程序从标准输入中获取“ x”个整数,然后计算平均值并将其返回。到目前为止,我还没有:


func main() {

var elems, mean int

sum := 0


fmt.Print("Number of elements? ")


fmt.Scan(&elems)


var array = new([elems]int)


for i := 0; i < elems; i++ {

    fmt.Printf("%d . Number? ", i+1)

    fmt.Scan(&array[i])

    sum += array[i];

}............

尝试对此进行编译时,出现以下错误消息:


无效的数组绑定元素


这是怎么了


浮云间
浏览 327回答 3
3回答

拉莫斯之舞

您应该使用切片而不是数组://var array = new([elems]int) - no, arrays are not dynamicvar slice = make([]int,elems) // or slice := make([]int, elems)请参阅“深入了解用法和内部原理”。另外,您可能要考虑为循环使用范围:// for i := 0; i < elems; i++ { - correct but less idiomaticfor i, v := range slice {
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go