dongliu6848
2017-07-28 02:12
浏览 261
已采纳

如何在Golang中初始化嵌套结构?

type important struct {
client     string                 `json:"client"`
Response   Summary        `json:"response"`

}

type Summary struct {
Name     string           `json:"name"`
Metadata Clientdata      `json:"metadata"`
}

type Clientdata struct {
Income string           `json:"income"` 
}


v := &important{ client: "xyz", Response:  Summary[{
            Name: "test",
            Metadata: Clientdata { "404040"},
        }
    }]

//Error: Cannot use Summary{ Name: "test", Metadata: Clientdata { "404040"}, } (type Summary) as type []Summary more...

What I am doing wrong here?

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • douzhanrun0497 2017-07-28 02:19
    已采纳

    To put it simply, you goofed the syntax of a slice literal slightly. Your mistake is fairly logical, but sadly it doesn't work.

    The following is a fixed version:

    v := &important{ client: "xyz", Response: []Summary{
            {
                Name: "test",
                Metadata: Clientdata { "404040"},
            },
        },
    }
    

    A slice literal is defined like so:

    []type{ items... }
    
    已采纳该答案
    打赏 评论
  • duanqing3026 2017-07-28 02:26

    It wasn't clear how you wanted to approach it, as your Response struct implies []VmSummary info, but you are feeding it []Summary.

    Also, check https://blog.golang.org/go-slices-usage-and-internals on initialization of arrays.

    Something like that?

    type important struct {
        client   string    `json:"client"`
        Response []Summary `json:"response"`
    }
    
    type Summary struct {
        Name     string     `json:"name"`
        Metadata Clientdata `json:"metadata"`
    }
    
    type Clientdata struct {
        Income string `json:"income"`
    }
    
    func main() {
        v := &important{
            client: "xyz",
            Response: []Summary{
                {
                    Name:     "test",
                    Metadata: Clientdata{"404040"},
                },
            },
        }
    }
    
    打赏 评论

相关推荐 更多相似问题