假设这是我的示例代码。运行时输出[[]][[] []][[] [] []][[] [] [] []]. 帮助我理解这段代码描述的内容以及编程术语中称为 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 关注
- 147 浏览
添加回答
举报
0/150
提交
取消