当前位置: 首页 > 面试题库 >

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

萧无尘
2023-03-14
问题内容

我尝试用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 {


 类似资料:
  • 问题内容: 哪两个代码片段正确创建并初始化了一个int元素的静态数组?(选择两个。) 一个。 B. C。 D. 答案:A,B 在这里即使D看起来是真实的,谁能让我知道为什么D是错误的。 问题答案: 正确答案是1和2(或者用您的符号表示A和B),而且正确的解决方案是: 解决方案D不会自动初始化数组,因为运行时会加载该类。它只是定义了一个静态方法(init),您必须在使用数组字段之前调用该方法。

  • 问题内容: 我想知道如何初始化一个数组(或列表),但尚未填充值,以具有定义的大小。 例如在C中: 我该如何在python中做到这一点? 谢谢。 问题答案: 您可以使用:

  • 尝试初始化变量时遇到问题: 我搜索了该怎么做,但没有找到。我读到要初始化的对象必须是静态的,但我找不到声明Map静态的方法。 谢谢你的帮助!

  • 结果将是: 我对这个结果感到困惑,因为根据标准规则,不是静态初始化,是静态初始化,因为这些: 变量或临时对象o的常量初始值设定项是其完全表达式为常量表达式的初始值设定项,但如果o是对象,则这样的初始值设定项也可以为o及其子对象调用constexpr构造函数,即使这些对象是非文字类类型。 如果实体的常量初始值设定项初始化具有静态或线程存储持续时间的变量或临时对象,则执行常量初始化。如果不执行常量初始

  • 问题内容: 我在python中初始化2D数组时遇到问题。我想要一个6x6的阵列,我做到了 但是当我这样做时: 注意,我只设置了1个项目,并且在所有行上都设置了“ replicated”。怎么了?我认为它与引用相同的列表有关,但是我该如何解决呢? 我估计 可以,但是初始化一个空的6x6数组似乎很长,如果我想要10000x10000数组怎么办,效率会很低? 更新 我还可以初始化2D数组的字典吗?我有一

  • 最近,当我在LeetCode上做一些练习时,我发现了一些绝妙的解决方案。它使用对象o引用数组,我猜可能是因为在Java,所有的东西都是Object。但当我尝试这种方法时,它出错了。所以我尝试了所有的方法来初始化数组,我想看看它们之间的区别,就像下面这样 只有o3会编译一个错误。我不知道是不是因为初始化的方式。我知道当我使用静态初始化时,它会先分配内存,当使用动态初始化时,它不会。它们之间的其他差异