Actually, it looks like the int/int8 distinction doesn't matter for gob.
> There is no int8, int16 etc. discrimination in the gob format; there are
> only signed and unsigned integers.
>
https://golang.org/pkg/encoding/gob/
On Wednesday, January 18, 2017 at 8:43:27 AM UTC-6, Jordan Krage wrote:
>
> How about a compromise with denser type info? (could consider an int8 as
> well)
>
> type infoType int
>
> const (
> firstType infoType = iota
> secondType
> ...
> )
>
> type Info struct{
> infoType
> IData interface{}
> }
>
>
> On Wednesday, January 18, 2017 at 12:07:49 AM UTC-6, [email protected]
> wrote:
>>
>> First thanks for you reply.
>> Because in fact, I have about more than 10 different struct types (maybe
>> more and more), your suggest is good, this is better
>> type Info struct{
>> typeStr string // store the type info to decode IData
>> IData interface{}
>> }
>>
>> But I don't like to send the typeInfo through rpc call(I'm using gob to
>> do rpc call),maybe there's a better way to do it, just I haven't found it。
>>
>> 在 2017年1月18日星期三 UTC+8上午11:12:05,Felipe Spinolo写道:
>>>
>>> Why not just create a wrapper struct? Something like:
>>>
>>> type Mixed struct{
>>> A *A
>>> B *B
>>> }
>>>
>>> And then just encode/decode that?
>>>
>>> On Tuesday, January 17, 2017 at 1:16:37 PM UTC-8, [email protected]
>>> wrote:
>>>>
>>>> I got two struct types encoded into bytes by gob, I want to decode the
>>>> bytes into a specific struct, is it possible without try all struct
>>>> types(maybe 3 or more struct types)?
>>>>
>>>> I want to decode bytes without specify which elem in mixedBytes is
>>>> struct A, and which is struct B.
>>>> This is the playground url: https://play.golang.org/p/F0Wp5eWdGu
>>>>
>>>> Is is possible to implement it by a map or something like this?
>>>>
>>>> var typesMap = map[string]reflect.Value{
>>>> "A": reflect.ValueOf(A{}),
>>>> "B": reflect.ValueOf(B{}),
>>>> }
>>>>
>>>>
>>>>
>>>>
--
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 [email protected].
For more options, visit https://groups.google.com/d/optout.