【问题标题】:How do I declare an array(or equivalent) in Go如何在 Go 中声明一个数组(或等价物)
【发布时间】:2011-09-20 09:36:31
【问题描述】:

我想做一些类似的事情(它是有效的)

var myArray [9][3]int

但是当我这样做时

var myArray [someIntVariable][anotherOne]int

它不能用(我知道为什么,所以我不问这个。) 但是有没有其他方法可以完成这项工作?

对不起,我的英语不好。

【问题讨论】:

    标签: arrays go slice


    【解决方案1】:

    以下内容对您有用吗?

    func make2dArray(m, n int) [][]int { 
       myArray := make([][]int, m) 
       for i := range myArray { 
          myArray[i] = make([]int, n) 
       } 
       return myArray 
    } 
    
    var myArray := make2dArray(someIntVariable, anotherOne)
    

    【讨论】:

      【解决方案2】:

      Go 中的“array”类型包含长度作为类型的一部分,因此它们仅适用于在编译时长度固定的情况(类似于 C99 之前的 C 中的“arrays”)。如果您想要长度仅在运行时确定的“数组”(例如 Java 中的数组),那么您真正想要的是“切片”。 mepcotterell 的回答向您展示了如何创建切片。

      【讨论】:

        【解决方案3】:

        您也可以对通用矩阵包感兴趣:

        gomatrix

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-07-22
          • 2016-07-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-03-28
          • 1970-01-01
          • 2020-03-28
          相关资源
          最近更新 更多