简体   繁体   中英

Golang - conversion between structs

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)?

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}
}

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM