Arrays 如何在Go中声明数组(或等效数组)

Arrays 如何在Go中声明数组(或等效数组),arrays,go,slice,Arrays,Go,Slice,我想做一些事情,比如(它是有效的) 但当我这么做的时候 var myArray [someIntVariable][anotherOne]int 它不能被使用(我知道为什么,所以我不是问这个。) 但有没有其他办法可以让这一切顺利进行 对不起,我的英语不好。以下内容对你有用吗 func make2dArray(m, n int) [][]int { myArray := make([][]int, m) for i := range myArray { myArra

我想做一些事情,比如(它是有效的)

但当我这么做的时候

var myArray [someIntVariable][anotherOne]int
它不能被使用(我知道为什么,所以我不是问这个。) 但有没有其他办法可以让这一切顺利进行


对不起,我的英语不好。

以下内容对你有用吗

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)

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

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

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)