假設(shè)這是我的示例代碼。運(yùn)行時(shí)輸出[[]][[] []][[] [] []][[] [] [] []]. 幫助我理解這段代碼描述的內(nèi)容以及編程術(shù)語(yǔ)中稱為 routingtable [][]*node 的內(nèi)容。它是節(jié)點(diǎn)的切片還是節(jié)點(diǎn)類型的二維數(shù)組。如果我聽(tīng)起來(lái)很蠢,請(qǐng)?jiān)徫?,但我只是想學(xué)習(xí)。package mainimport "fmt"type node struct { id int}func main() { var routingtable [][]*node for i := 0; i < 4; i++ { routingtable = append(routingtable, []*node{}) fmt.Print(routingtable) }}
1 回答

炎炎設(shè)計(jì)
TA貢獻(xiàn)1808條經(jīng)驗(yàn) 獲得超4個(gè)贊
它只是意味著它包含 4 個(gè)空節(jié)點(diǎn)指針切片,這是您的代碼的預(yù)期行為。
它是一片片的節(jié)點(diǎn)指針片。
這是對(duì)您的代碼的簡(jiǎn)單修改,以向您展示如果將節(jié)點(diǎn)添加到切片,它是如何工作的:
package main
import "fmt"
type node struct {
? ? id int
}
func main() {
? ? var routingTable [][]*node
? ? for i := 0; i < 4; i++ {
? ? ? ? routingTable = append(routingTable, []*node{&node{id: i}})
? ? }
? ? fmt.Print(routingTable)
}
將輸出節(jié)點(diǎn)指針的切片切片,包含一個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)具有不同的地址:
[[0x10414020] [0x10414024] [0x10414028] [0x1041402c]]
- 1 回答
- 0 關(guān)注
- 177 瀏覽
添加回答
舉報(bào)
0/150
提交
取消