我怎样才能在戈兰实现一个空位

  • 本文关键字:空位 一个 实现 go
  • 更新时间 :
  • 英文 :


我正在Golang制作一个(非二进制)树。

在Java中,我会使用类似的东西

 class Node{
   List <Object> data;
 }

其中数据可以是指向数据或子节点的指针

在C或C++中,我会使用void*。

我应该在golang 中使用什么类型

我从未尝试过用任何语言解决这个问题,这在Go中有效吗?

播放链接编辑在阅读了重复的问题后,我看到你没有问关于实现的问题,无论如何都要享受♥︎

package main
import (
    "fmt"
)
type Node struct {
    List []*Node
    Data interface{}
}
func main() {
    trivial := Node{}
    leaf := Node{Data: 1}
    tree := Node{
        List: []*Node{
            &leaf,
            &leaf,
        },
    }
    out(trivial)
    out(leaf)
    out(tree)
}
func out(x interface{}) {
    fmt.Printf("%T:%+vn", x, x)
}
// main.Node:{List:[] Data:<nil>}
// main.Node:{List:[] Data:1}
// main.Node:{List:[0xc82000e180 0xc82000e180] Data:<nil>}
Go中没有空指针。处理此问题的方法是使用空接口interface{},该接口由所有类型固有地实现。我问了一个关于这个问题,你可以在这里找到;Go相当于C 中的void指针

最新更新