为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
森林海 2023-04-04 17:28:20
假设这是我的示例代码。运行时输出[[]][[] []][[] [] []][[] [] [] []]. 帮助我理解这段代码描述的内容以及编程术语中称为 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]]




查看完整回答
反对 回复 2023-04-04
  • 1 回答
  • 0 关注
  • 147 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信