kil*_*s76 4 arrays go multidimensional-array
是否有可能a)定义b)使用现有数组初始化一个新的多维数组,如下面的代码而不是var b [2][3]int
,只是说出类似的东西var b [2]a
?
使用任何类型的类型,而不是硬编码(它错过了使用[...]的点).
也许处理初始化=同时复制值?
package main
func main () {
a := [...]int{4,5,6}
var b [2][3]int
b[0],b[1] = a,a
}
Run Code Online (Sandbox Code Playgroud)
(我知道切片的简易性和方便性,但这个问题是关于理解数组.)
编辑:不敢相信我忘记了var b [2][len(a)]int
,初学者的大脑冻结了.一线答案是var b = [2][len(a)]int{a,a}
.这是一种类型转换,对吗?
以下代码也可以使用.你和我的例子都做同样的事情,也不应该比另一个快得多.
除非你使用反射来制作你的切片(不是数组)[3]int
,否则不可能[3]int
在你的新类型中重复.即使这在当前版本中也是不可能的.它是小费,将在Go 1.1中发布.
package main
import "fmt"
func main() {
a := [...]int{4,5,6}
var b = [2][3]int{a, a}
fmt.Println(b)
}
Run Code Online (Sandbox Code Playgroud)