英文:
How do I declare an array(or equivalent) in Go
问题
我想做类似这样的事情(它是有效的)
var myArray [9][3]int
但是当我这样做时
var myArray [someIntVariable][anotherOne]int
它不能使用(我知道为什么,所以我不在问这个。)
但是有没有其他方法可以使这个工作?
对不起,我的英语不好。
英文:
I want to do something like(it's valid)
var myArray [9][3]int
but when I do
var myArray [someIntVariable][anotherOne]int
It can't be used(I know why, so I'm not asking this.)
But is there any alternative to make this work?
Sorry for my bad English.
答案1
得分: 5
以下是翻译好的部分:
你对以下代码是否有效?
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)
英文:
Does the following work for you?
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
得分: 1
在Go语言中,“array”类型包括长度作为类型的一部分,因此它们只适用于在编译时长度固定的情况(类似于C语言中的“数组”在C99之前的情况)。如果你想要长度只在运行时确定的“数组”(例如Java中的数组),你真正想要的是一个“切片”。mepcotterell的答案向你展示了如何创建一个切片的切片。
英文:
"array" types in Go include the length as part of the type, so they are only good for things where the length is fixed at compile time (similar to "arrays" in C before C99). If you want "arrays" whose length is determined only at runtime (e.g. arrays in Java), what you really want is a "slice". mepcotterell's answer shows you how to create a slice of slices.
答案3
得分: 0
你也可能对一个通用的矩阵包感兴趣:
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论