参考内部结构

我正在尝试以编程方式创建一些 API 文档,我有这个:


type APIDoc struct {

    Route           string

    ResolutionValue struct {

       v           string

    }

}

然后我尝试这样做:


    json.NewEncoder(w).Encode(APIDoc.ResolutionValue{"foo"})

但它说


APIDoc.ResolutionValue 未定义(类型 APIDoc 没有方法 ResolutionValue)


所以我求助于这样做:


type ResolutionValue struct {

    v string

}


type APIDoc struct {

    Route           string

    ResolutionValue ResolutionValue

}

然后做:


    json.NewEncoder(w).Encode(ResolutionValue{"foo"})

有点蹩脚,有没有办法以某种方式确保完整性?


回首忆惘然
浏览 114回答 1
1回答

ABOUTYOU

从 Go 1.11 开始,不支持嵌套类型。在我看来,您的修订版看起来好多了。编辑:可能与问题无关,但您可以使用类型嵌入来简化您的类型。但是,请注意表示形式不同:type Inner struct {    Whatever int}type ResolutionValue struct {    Val string    Inner}type ResolutionValue2 struct {    Val    string    Inner Inner}func main() {    a, _ := json.Marshal(ResolutionValue{})    b, _ := json.Marshal(ResolutionValue2{})    fmt.Printf("%s\n%s", a, b)}哪个打印:{"Val":"","Whatever":0}{"Val":"","Inner":{"Whatever":0}}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go