如何在 golang 中实现 void* ?

Cha*_*ler 5 go

我正在 Golang 中制作一棵(非二元)树。

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

 class Node{
   List <Object> data;
 }
Run Code Online (Sandbox Code Playgroud)

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

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

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

Pla*_*ato 4

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

\n\n

去播放链接\n编辑我看到你没有询问实现,无论如何享受 \xe2\x99\xa5\xef\xb8\x8e

\n\n
package main\n\nimport (\n    "fmt"\n)\n\ntype Node struct {\n    List []*Node\n    Data interface{}\n}\n\nfunc main() {\n    trivial := Node{}\n\n    leaf := Node{Data: 1}\n\n    tree := Node{\n        List: []*Node{\n            &leaf,\n            &leaf,\n        },\n    }\n    out(trivial)\n    out(leaf)\n    out(tree)\n}\n\nfunc out(x interface{}) {\n    fmt.Printf("%T:%+v\\n", x, x)\n}\n\n// main.Node:{List:[] Data:<nil>}\n// main.Node:{List:[] Data:1}\n// main.Node:{List:[0xc82000e180 0xc82000e180] Data:<nil>}\n
Run Code Online (Sandbox Code Playgroud)\n