1
0
mirror of https://github.com/golang/go synced 2024-11-24 22:57:57 -07:00

gob: update documentation about wire format for interfaces.

R=rsc
CC=golang-dev
https://golang.org/cl/2814041
This commit is contained in:
Rob Pike 2010-10-31 15:08:45 -07:00
parent 7f7cb166c8
commit 41ac2f8a42

View File

@ -130,11 +130,12 @@ Interface types are not checked for compatibility; all interface types are
treated, for transmission, as members of a single "interface" type, analogous to
int or []byte - in effect they're all treated as interface{}. Interface values
are transmitted as a string identifying the concrete type being sent (a name
that must be pre-defined by calling Register()), followed by the usual encoding
of concrete (dynamic) value stored in the interface value. (A nil interface
value is identified by the empty string and transmits no value.) Upon receipt,
the decoder verifies that the unpacked concrete item satisfies the interface of
the receiving variable.
that must be pre-defined by calling Register), followed by a byte count of the
length of the following data (so the value can be skipped if it cannot be
stored), followed by the usual encoding of concrete (dynamic) value stored in
the interface value. (A nil interface value is identified by the empty string
and transmits a zero-length value.) Upon receipt, the decoder verifies that the
unpacked concrete item satisfies the interface of the receiving variable.
The representation of types is described below. When a type is defined on a given
connection between an Encoder and Decoder, it is assigned a signed integer type