vendredi 26 août 2016

Converting between struct types in Go

So I have a question that I've been trying to figure out for a while and hopefully someone has some insight. Basically, I have two similar, but different structs in Go and I would like to convert between them.

Something like the following:

type A struct {
    Name string
}

type B struct {
    Name NameStruct
}

type NameStruct struct {
    Firstname string
    Lastname string
}

In this example,

B.Name == NameStruct{
              Firstname: strings.Split(A.Name, " ")[0],
              Lastname:  strings.Split(A.Name, " ")[1],
          }

Basically I would like to be able to define a mapping of fields from one struct to the other as well as a conversion function, so that I can do this without writing all of the code to do the conversion manually.

What I'm imagining is that there might be some sort of Go generator out there that could do something like this. I don't think it is possible using reflection because of the nested structs (although I'm open to suggestions).

Basically, does anyone know of a way to do this that is better than either writing conversion code manually or creating my own generator?





Aucun commentaire:

Enregistrer un commentaire