Сериализация / Бинарный формат

import (
    "fmt"
    "encoding/gob"
    "bytes"
    "io/ioutil"
)

type Data struct {
    Text string
    Num float32
    Arr []int
}

var data = Data {
    "Hello"3.14, []int{257},
}

//Write Binary Data
var buff bytes.Buffer
enc := gob.NewEncoder(&buff)
enc.Encode(data)
var data_b = buff.Bytes()

err := ioutil.WriteFile(
    "data.bin", data_b, 0644)
if err != nil {
    fmt.Println(err)
}

//Read Binary Data
data_b2, err := ioutil.ReadFile("data.bin")
if err != nil {
    fmt.Print(err)
}
buff2 := bytes.NewBuffer(data_b2)   
data2 := Data{}
dec := gob.NewDecoder(buff2)
dec.Decode(&data2)

//data2 is {Hello 3.14 [2 5 7]}
fmt.Println("data2 is", data2)