October 2015
Beginner to intermediate
400 pages
14h 44m
English
For each Marshal function provided by the standard library’s
encoding/... packages, there is a corresponding
Unmarshal function that does decoding.
For example, as we saw in Section 4.5, given a byte slice
containing JSON-encoded data for our Movie type (§12.3), we can decode it like this:
data := []byte{/* ... */}
var movie Movie
err := json.Unmarshal(data, &movie)
The Unmarshal function uses reflection to modify the fields of
the existing movie variable, creating new maps, structs, and
slices as determined by the type Movie and the content of the
incoming data.
Let’s now implement a simple Unmarshal function for
S-expressions, analogous to the standard json.Unmarshal