I think you will need to encode a struct that contains the type name and the struct. Then you decode using reflection.
-----Original Message-----
From: 'Axel Wagner' via golang-nuts
Sent: Aug 15, 2019 3:12 AM
To: Jochen Voss
Cc: golang-nuts
Subject: Re: [go-nuts] panic: interface conversion: interface is nil, not encoding.BinaryUnmarshalerI haven't really used gob much, so unfortunately I can't *really* help you. But one thing to note is that you can dump the content of the buffer and see that it doesn't actually contain the name of the type you are encoding: https://play.golang.org/p/R8HB6RP8kS0I agree that from the documentation, it seems to me that it *should* and I can't really see what this is doing wrong. And I agree that this probably shouldn't panic, but instead return an error. But given that the encoded bytes don't contain the name of the concrete struct, there is no way the decoder can know where you want to put it, without giving it the correct type.--On Thu, Aug 15, 2019 at 9:22 AM Jochen Voss <jochen.v...@gmail.com> wrote:Dear Marcin,--My aim is to unmarshal into an interface variable, without having to know in advance which concrete type I'm receiving (the actual interface has several possible implementations, and gob data comes in over a network connection). So, while your code avoids the panic, it does not solve my problem.Many thanks,Jochen
On Wednesday, 14 August 2019 22:12:54 UTC+1, Marcin Romaszewicz wrote:Here you go:You want to unmarshal into &A, not into &DuckThis means:var duck2 Anot:var duck2 DuckOn Wed, Aug 14, 2019 at 8:46 AM Jochen Voss <joche...@gmail.com> wrote:Hello,--I'm trying to read gob-encoded data into a variable of interface type. In simple cases, this works for me, but when I use a custom encoding via MarshalBinary() and UnmarshalBinary() methods, my code keeps crashing, with the error messagepanic: interface conversion: interface is nil, not encoding.BinaryUnmarshalerExample:- The code at https://play.golang.org/p/y8nWNhObUwb, letting gob do the en-/decoding works.- The very similar code at https://play.golang.org/p/-zS7QjEJg9x, which uses MarshalBinary() and UnmarshalBinary() crashes with the panic shown above.What am I doing wrong?[I asked the same question at https://stackoverflow.com/questions/57485698/, with no answers so far]Many thanks,Jochen
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 golan...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/b19c51bc-524c-4292-915b-fc00e9289052%40googlegroups.com.
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+unsubscr...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/042b28c0-d768-4cba-94cf-159cf4231818%40googlegroups.com.
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+unsubscr...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/CAEkBMfFp567QVvMy4iOmYfuWzQFdbNovNAJXGu%2Bk_%3DcDKm7yBg%40mail.gmail.com.
--
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+unsubscr...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/66187586.2103.1565884751766%40wamui-esmeralda.atl.sa.earthlink.net.