是否可以a)定義b)使用現(xiàn)有數(shù)組初始化一個(gè)新的多維數(shù)組,如下面的代碼中所示,而不是var b [2][3]int說(shuō)類(lèi)似var b [2]a?使用a的類(lèi)型是什么,而不是對(duì)其進(jìn)行硬編碼(錯(cuò)過(guò)了使用a的意義)。也許同時(shí)處理初始化=復(fù)制值?package mainfunc main () { a := [...]int{4,5,6} var b [2][3]int b[0],b[1] = a,a }(我知道切片的簡(jiǎn)便性,但是這個(gè)問(wèn)題是關(guān)于理解數(shù)組的。)編輯:簡(jiǎn)直不敢相信我忘記了var b [2][len(a)]int,初學(xué)者的大腦凍結(jié)了。一線的答案是var b = [2][len(a)]int{a,a}。那是類(lèi)型轉(zhuǎn)換,對(duì)不對(duì)?
1 回答

梵蒂岡之花
TA貢獻(xiàn)1900條經(jīng)驗(yàn) 獲得超5個(gè)贊
以下代碼也可以使用。您的示例和我的示例都做同樣的事情,并且兩者都不應(yīng)該比彼此快得多。
除非您使用反射來(lái)制作自己的切片(而不是數(shù)組)[3]int,否則就不可能[3]int在您的新類(lèi)型中不重復(fù)。在當(dāng)前版本中,這是不可能的。它是技巧,將在Go 1.1中發(fā)布。
package main
import "fmt"
func main() {
a := [...]int{4,5,6}
var b = [2][3]int{a, a}
fmt.Println(b)
}
- 1 回答
- 0 關(guān)注
- 208 瀏覽
添加回答
舉報(bào)
0/150
提交
取消