Artur Rychlewicz
Artur Rychlewicz

Reputation: 505

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

Upvotes: 6

Views: 7315

Answers (2)

jussius
jussius

Reputation: 3274

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

Upvotes: 7

Volker
Volker

Reputation: 42458

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.

Upvotes: -2

Related Questions