douya2006
douya2006
2016-06-09 11:31
浏览 103
已采纳

Golang-结构之间的转换

I have two structs

type A struct {
    a int
    b string
}

type B struct {
    A
    c string
    // more fields
}

I'd like to convert variable of type A to type B (A has defined only basic fields that are crucial for some parts, B on the other hand contains 'full' data).

Is it possible in Go, or do I have to copy fields manually (or create a method A.GetB() or something like this and use this to convert A to B)?

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

2条回答 默认 最新

  • drl6054
    drl6054 2016-06-09 12:08
    已采纳

    By converting do you mean this:

    func main() {
        // create structA of type A
        structA := A{a: 42, b: "foo"}
    
        // convert to type B
        structB := B{A: structA}
    }
    
    点赞 评论
  • doufang2228
    doufang2228 2016-06-09 11:43

    The types A and B have different underlying types so they cannot be converted into each other. No way.

    So either copy manually or provide converter functions or methods which do this copying.

    点赞 评论

相关推荐