在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];

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

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

无效的数组绑定元素

怎么了

回答:

您应该使用切片而不是数组:

//var array = new([elems]int) - no, arrays are not dynamic

var slice = make([]int,elems) // or slice := make([]int, elems)

请参阅“ 深入了解用法和内部原理 ”。

另外,您可能要考虑为循环使用范围:

// for i := 0; i < elems; i++ { - correct but less idiomatic

for i, v := range slice {

以上是 在go中动态初始化数组大小 的全部内容, 来源链接: utcz.com/qa/423771.html

回到顶部