动态初始化去数组大小 [英] Dynamically initialize array size in go

查看:148
本文介绍了动态初始化去数组大小的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试着写在旅途中的小应用程序,采用X的整数数量从标准输入,计算平均值,并给出了回去。我只是到目前为止得到:

I try to write a small application in go that takes 'x' numbers of integers from standard input, calculates the mean and gives it back. I have only gotten so far:

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];
}............

当试图编译此,我得到了以下错误消息:

When trying to compile this I get the following error message:

无效的数组边界elems

invalid array bound elems

什么是错在这里?

推荐答案

你应该使用一个切片:

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

请参阅去片的使用和内部

另外你可能想使用范围你的循环考虑

Also you may want to consider using range for your loop:

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

这篇关于动态初始化去数组大小的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆