Get struct type , save and reconstruct empty struct later

50 views
Skip to first unread message

Vasiliy Tolstov

unread,
Jul 20, 2019, 3:28:54 AM7/20/19
to golan...@googlegroups.com
Hi. I have reflection based question.
I need to store type of struct passed to func and later based on this stored type reconstruct empty needed struct.
Does this possible ?

Jan Mercl

unread,
Jul 20, 2019, 3:55:44 AM7/20/19
to Vasiliy Tolstov, golang-nuts
Not sure I understood the question: https://play.golang.org/p/5AEn3IsKObo

Vasiliy Tolstov

unread,
Jul 20, 2019, 4:44:38 AM7/20/19
to Jan Mercl, Василий Толстов, golang-nuts
Thanks, something like this, but i need to store type in string or []byte in db, and based on this create new empty struct.

сб, 20 июл. 2019 г., 10:55 Jan Mercl <0xj...@gmail.com>:

Martin Schnabel

unread,
Jul 20, 2019, 10:17:18 AM7/20/19
to golan...@googlegroups.com
If you only need any unnamed struct type you can create one with reflect
from the field information that you can write to text somewhere.

https://godoc.org/reflect#StructOf

These unnamed struct types however do not have any methods and do not
wrap embedded named type methods.

Otherwise you probably want to register your struct types on program
initialization; for later lookup and so that they are part of the
compiled binary. The gob package does it like that for example.

Have fun!


On 20.07.19 10:44, Vasiliy Tolstov wrote:
> Thanks, something like this, but i need to store type in string or
> []byte in db, and based on this create new empty struct.
>
> сб, 20 июл. 2019 г., 10:55 Jan Mercl <0xj...@gmail.com
> <mailto:0xj...@gmail.com>>:
>
> On Sat, Jul 20, 2019 at 9:28 AM Vasiliy Tolstov <v.to...@selfip.ru
> <mailto:v.to...@selfip.ru>> wrote:
>
> > Hi. I have reflection based question.
> > I need to store type of struct passed to func and later based on
> this stored type reconstruct empty needed struct.
> > Does this possible ?
>
> Not sure I understood the question:
> https://play.golang.org/p/5AEn3IsKObo
>
> --
> You received this message because you are subscribed to the Google
> Groups "golang-nuts" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to golang-nuts...@googlegroups.com
> <mailto:golang-nuts...@googlegroups.com>.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/golang-nuts/CACaajQsO90D5iDOZEpsgwbPBgEu%3DU8eLpYeg%3D2b2odAcp55f9g%40mail.gmail.com
> <https://groups.google.com/d/msgid/golang-nuts/CACaajQsO90D5iDOZEpsgwbPBgEu%3DU8eLpYeg%3D2b2odAcp55f9g%40mail.gmail.com?utm_medium=email&utm_source=footer>.

Vasiliy Tolstov

unread,
Jul 20, 2019, 4:30:26 PM7/20/19
to Martin Schnabel, golan...@googlegroups.com
сб, 20 июл. 2019 г. в 17:17, Martin Schnabel <m...@mb0.org>:
>
> If you only need any unnamed struct type you can create one with reflect
> from the field information that you can write to text somewhere.
>
> https://godoc.org/reflect#StructOf
>
> These unnamed struct types however do not have any methods and do not
> wrap embedded named type methods.
>
> Otherwise you probably want to register your struct types on program
> initialization; for later lookup and so that they are part of the
> compiled binary. The gob package does it like that for example.
>

Thanks for link doc. It is very useful. Now i think that i'm try to
use protobuf Any (as all of my struct are protobuf proto.Message.
As i understand via protobuf i can register needed Req/Rsp empty
messages via Any, and later unmarshal message to this empty structs.


--
Vasiliy Tolstov,
e-mail: v.to...@selfip.ru
Reply all
Reply to author
Forward
0 new messages