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

发布于 2024-11-17 03:56:42 字数 230 浏览 0 评论 0原文

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

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.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

醉生梦死 2024-11-24 03:56:42

以下内容对您有用吗?

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)
薄情伤 2024-11-24 03:56:42

Go 中的“数组”类型将长度作为类型的一部分,因此它们仅适用于长度在编译时固定的情况(类似于 C99 之前的 C 中的“数组”)。如果您想要长度仅在运行时确定的“数组”(例如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.

漫雪独思 2024-11-24 03:56:42

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

gomatrix

You can also be interested in a generic matrix package:

gomatrix

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文