go中的元帅递归类型

Ros*_*oss 3 marshalling go unmarshalling

我希望Marshal和Unmarshal是递归类型,如下所示:

type Dog struct {
    age int
    sibling *Dog
}
Run Code Online (Sandbox Code Playgroud)

在golang有什么办法吗?我试过json.Marshal,但它不起作用.

Yan*_*ozo 6

你的问题不在于递归,而是了解Golang,ei公共和私人成员的封装.为了在Go中编码,你的struct必须有公共字段(以大写字母开头):

type Dog struct {
    Age     int
    Sibling *Dog
}
Run Code Online (Sandbox Code Playgroud)

完整示例:https://play.golang.org/p/eNdLaTfKtN