[][]*数据类型在golang中是什么意思

假设这是我的示例代码。运行时输出[[]][[] []][[] [] []][[] [] [] []]. 帮助我理解这段代码描述的内容以及编程术语中称为 routingtable [][]*node 的内容。它是节点的切片还是节点类型的二维数组。如果我听起来很蠢,请原谅我,但我只是想学习。


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)

    }

}



森林海
浏览 148回答 1
1回答

炎炎设计

它只是意味着它包含 4 个空节点指针切片,这是您的代码的预期行为。它是一片片的节点指针片。这是对您的代码的简单修改,以向您展示如果将节点添加到切片,它是如何工作的:package mainimport "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]]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go