假设这是我的示例代码。运行时将输出[[]][[] []][[] [] []][[] [] [] []]
。帮助我理解此代码描述的内容以及编程术语中调用的routingtable [] [] *节点。它是节点切片的一部分还是节点类型的二维数组。如果我听起来很笨,请原谅我,但我只是想学习。
package main
import "fmt"
type node struct {
id int
}
func main() {
var routingtable [][]*node
for i := 0; i < 4; i++ {
routingtable = append(routingtable, []*node{})
fmt.Print(routingtable)
}
}
答案 0 :(得分:0)
这只是意味着它包含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]]
亲自尝试here