假設這是我的示例代碼。運行時輸出[[]][[] []][[] [] []][[] [] [] []]. 幫助我理解這段代碼描述的內容以及編程術語中稱為 routingtable [][]*node 的內容。它是節點的切片還是節點類型的二維數組。如果我聽起來很蠢,請原諒我,但我只是想學習。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 回答

炎炎設計
TA貢獻1808條經驗 獲得超4個贊
它只是意味著它包含 4 個空節點指針切片,這是您的代碼的預期行為。
它是一片片的節點指針片。
這是對您的代碼的簡單修改,以向您展示如果將節點添加到切片,它是如何工作的:
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)
}
將輸出節點指針的切片切片,包含一個節點,每個節點具有不同的地址:
[[0x10414020] [0x10414024] [0x10414028] [0x1041402c]]
- 1 回答
- 0 關注
- 181 瀏覽
添加回答
舉報
0/150
提交
取消