2016-06-09 11:31
浏览 103


I have two structs

type A struct {
    a int
    b string

type B struct {
    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.

    点赞 评论