mirror of
https://github.com/unknwon/the-way-to-go_ZH_CN.git
synced 2025-08-12 00:11:36 +08:00
@@ -2,7 +2,7 @@
|
||||
|
||||
Gob 是 Go 自己的以二进制形式序列化和反序列化程序数据的格式;可以在 `encoding` 包中找到。这种格式的数据简称为 Gob (即 Go binary 的缩写)。类似于 Python 的 "pickle" 和 Java 的 "Serialization"。
|
||||
|
||||
Gob 通常用于远程方法调用(RPCs,参见 [15.9节](15.9.md) 的 rpc 包)参数和结果的传输,以及应用程序和机器之间的数据传输。
|
||||
Gob 通常用于远程方法调用(RPCs,参见 [15.9 节](15.9.md)的 `rpc` 包)参数和结果的传输,以及应用程序和机器之间的数据传输。
|
||||
它和 JSON 或 XML 有什么不同呢?Gob 特定地用于纯 Go 的环境中,例如,两个用 Go 写的服务之间的通信。这样的话服务可以被实现得更加高效和优化。
|
||||
Gob 不是可外部定义,语言无关的编码方式。因此它的首选格式是二进制,而不是像 JSON 和 XML 那样的文本格式。
|
||||
Gob 并不是一种不同于 Go 的语言,而是在编码和解码过程中用到了 Go 的反射。
|
||||
@@ -25,7 +25,7 @@ type U struct { X, Y *int8 }
|
||||
var u U
|
||||
```
|
||||
|
||||
在接收者中,X 的值是7,Y 的值是0(Y的值并没有从 t 中传递过来,因为它是零值)
|
||||
在接收者中,`X` 的值是 `7`,`Y` 的值是 `0`(`Y` 的值并没有从 `t` 中传递过来,因为它是零值)
|
||||
|
||||
|
||||
和 JSON 的使用方式一样,Gob 使用通用的 `io.Writer` 接口,通过 `NewEncoder()` 函数创建 `Encoder` 对象并调用 `Encode()`;相反的过程使用通用的 `io.Reader` 接口,通过 `NewDecoder()` 函数创建 `Decoder` 对象并调用 `Decode()`。
|
||||
|
Reference in New Issue
Block a user