mirror of
https://github.com/unknwon/the-way-to-go_ZH_CN.git
synced 2025-08-12 03:34:15 +08:00
40 lines
789 B
Go
40 lines
789 B
Go
// gob2.go
|
|
package main
|
|
|
|
import (
|
|
"encoding/gob"
|
|
"log"
|
|
"os"
|
|
)
|
|
|
|
type Address struct {
|
|
Type string
|
|
City string
|
|
Country string
|
|
}
|
|
|
|
type VCard struct {
|
|
FirstName string
|
|
LastName string
|
|
Addresses []*Address
|
|
Remark string
|
|
}
|
|
|
|
var content string
|
|
|
|
func main() {
|
|
pa := &Address{"private", "Aartselaar","Belgium"}
|
|
wa := &Address{"work", "Boom", "Belgium"}
|
|
vc := VCard{"Jan", "Kersschot", []*Address{pa,wa}, "none"}
|
|
// fmt.Printf("%v: \n", vc) // {Jan Kersschot [0x126d2b80 0x126d2be0] none}:
|
|
// using an encoder:
|
|
file, _ := os.OpenFile("vcard.gob", os.O_CREATE|os.O_WRONLY, 0)
|
|
defer file.Close()
|
|
enc := gob.NewEncoder(file)
|
|
err := enc.Encode(vc)
|
|
if err != nil {
|
|
log.Println("Error in encoding gob")
|
|
}
|
|
}
|
|
|