无法初始化嵌入式结构

我在 packageA 中声明了以下结构


type FlagSkel struct {

    Name    string

    Short   string

    HelpMsg string

}


type FlagString struct {

    Value        string

    DefaultValue string

}


type CompositeFlagString struct {

    FlagSkel

    FlagString

}

在另一个包中,我试图初始化(在任何函数之外)var后一种类型的 a ,如下所示:


var Name = packageA.CompositeFlagString{

    FlagSkel: {

        Name:    "name",

        Short:   "",

        HelpMsg: "Something here",

    },

    FlagString: {

        DefaultValue: "",

    },

}


但是 vscode 编译器向我显示了附加的错误

http://img4.mukewang.com/62b17a0700015b9207130115.jpg

我究竟做错了什么?



慕雪6442864
浏览 103回答 2
2回答

临摹微笑

您需要指定结构文字的类型:packageA.CompositeFlagString{    FlagSkel: packageA.FlagSkel{        Name:    "name",        Short:   "",        HelpMsg: "Something here",    },    FlagString: packageA.FlagString{        DefaultValue: "",    },}

阿晨1998

您错过了设置要创建的内部结构的类型。你的变量初始化应该是:var Name = packageA.CompositeFlagString{    FlagSkel: packageA.FlagSkel {        Name:    "name",        Short:   "",        HelpMsg: "Something here",    },    FlagString: packageA.FlagString {        DefaultValue: "",    },}如果你改变它,它应该可以工作。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go