mirror of
https://github.com/unknwon/the-way-to-go_ZH_CN.git
synced 2025-11-13 09:16:10 +08:00
12.7-12.12
This commit is contained in:
@@ -16,7 +16,6 @@ Gob 文件或流是完全自描述的:里面包含的所有类型都有一个
|
||||
```go
|
||||
type T struct { X, Y, Z int }
|
||||
var t = T{X: 7, Y: 0, Z: 8}
|
||||
|
||||
```
|
||||
|
||||
而在接收者这边可以用一个结构体 U 类型的变量 u 来接收这个值:
|
||||
@@ -24,7 +23,6 @@ var t = T{X: 7, Y: 0, Z: 8}
|
||||
```go
|
||||
type U struct { X, Y *int8 }
|
||||
var u U
|
||||
|
||||
```
|
||||
|
||||
在接收者中,X 的值是7,Y 的值是0(Y的值并没有从 t 中传递过来,因为它是零值)
|
||||
@@ -81,7 +79,6 @@ func main() {
|
||||
fmt.Printf("%q: {%d,%d}\n", q.Name, *q.X, *q.Y)
|
||||
}
|
||||
// Output: "Pythagoras": {3,4}
|
||||
|
||||
```
|
||||
|
||||
示例 12.19 [gob2.go](examples/chapter_12/gob2.go) 编码到文件:
|
||||
@@ -115,7 +112,7 @@ 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}:
|
||||
// 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()
|
||||
@@ -125,16 +122,14 @@ func main() {
|
||||
log.Println("Error in encoding gob")
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
**练习 12.8**:[degob.go](exercises/chapter_12/degob.go):
|
||||
|
||||
写一个程序读取 vcard.gob 文件,解码并打印它的内容。
|
||||
|
||||
|
||||
## 链接
|
||||
|
||||
- [目录](directory.md)
|
||||
- 上一节:[XML 数据格式](12.10.md)
|
||||
- 下一节:[Go 中的密码学](12.12.md)
|
||||
- 下一节:[Go 中的密码学](12.12.md)
|
||||
|
||||
Reference in New Issue
Block a user