From 289caaa3fddd920d63daa1e51046b94e254797a1 Mon Sep 17 00:00:00 2001 From: sunt-ing <11710108@mail.sustech.edu.cn> Date: Sun, 27 Dec 2020 13:13:14 +0800 Subject: [PATCH 1/2] =?UTF-8?q?better-translation:=20=E6=89=BC=E6=9D=80=20?= =?UTF-8?q?=E2=86=92=20=E6=8A=B9=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ch4.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ch4.md b/ch4.md index 645b340..ea95440 100644 --- a/ch4.md +++ b/ch4.md @@ -182,7 +182,7 @@ Thrift CompactProtocol编码在语义上等同于BinaryProtocol,但是如[图4 #### 数据类型和模式演变 -如何改变字段的数据类型?这可能是可能的——检查文件的细节——但是有一个风险,值将失去精度或被扼杀。例如,假设你将一个32位的整数变成一个64位的整数。新代码可以轻松读取旧代码写入的数据,因为解析器可以用零填充任何缺失的位。但是,如果旧代码读取由新代码写入的数据,则旧代码仍使用32位变量来保存该值。如果解码的64位值不适合32位,则它将被截断。 +如何改变字段的数据类型?这可能是可能的——检查文件的细节——但是有一个风险,值将失去精度或被抹除。例如,假设你将一个32位的整数变成一个64位的整数。新代码可以轻松读取旧代码写入的数据,因为解析器可以用零填充任何缺失的位。但是,如果旧代码读取由新代码写入的数据,则旧代码仍使用32位变量来保存该值。如果解码的64位值不适合32位,则它将被截断。 Protobuf的一个奇怪的细节是,它没有列表或数组数据类型,而是有一个字段的重复标记(这是第三个选项旁边必要和可选)。如[图4-4](img/fig4-4.png)所示,重复字段的编码正如它所说的那样:同一个字段标记只是简单地出现在记录中。这具有很好的效果,可以将可选(单值)字段更改为重复(多值)字段。读取旧数据的新代码会看到一个包含零个或一个元素的列表(取决于该字段是否存在)。读取新数据的旧代码只能看到列表的最后一个元素。 From 0973828016f9db1c3ddff7f36999b89dd86b294d Mon Sep 17 00:00:00 2001 From: sunt-ing <11710108@mail.sustech.edu.cn> Date: Sun, 27 Dec 2020 13:19:10 +0800 Subject: [PATCH 2/2] =?UTF-8?q?better-translation:=20=E6=89=BC=E6=9D=80=20?= =?UTF-8?q?=E2=86=92=20=E7=A0=B4=E5=9D=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ch4.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ch4.md b/ch4.md index ea95440..1c87876 100644 --- a/ch4.md +++ b/ch4.md @@ -182,7 +182,7 @@ Thrift CompactProtocol编码在语义上等同于BinaryProtocol,但是如[图4 #### 数据类型和模式演变 -如何改变字段的数据类型?这可能是可能的——检查文件的细节——但是有一个风险,值将失去精度或被抹除。例如,假设你将一个32位的整数变成一个64位的整数。新代码可以轻松读取旧代码写入的数据,因为解析器可以用零填充任何缺失的位。但是,如果旧代码读取由新代码写入的数据,则旧代码仍使用32位变量来保存该值。如果解码的64位值不适合32位,则它将被截断。 +如何改变字段的数据类型?这可能是可能的——检查文件的细节——但是有一个风险,值将失去精度或被破坏。例如,假设你将一个32位的整数变成一个64位的整数。新代码可以轻松读取旧代码写入的数据,因为解析器可以用零填充任何缺失的位。但是,如果旧代码读取由新代码写入的数据,则旧代码仍使用32位变量来保存该值。如果解码的64位值不适合32位,则它将被截断。 Protobuf的一个奇怪的细节是,它没有列表或数组数据类型,而是有一个字段的重复标记(这是第三个选项旁边必要和可选)。如[图4-4](img/fig4-4.png)所示,重复字段的编码正如它所说的那样:同一个字段标记只是简单地出现在记录中。这具有很好的效果,可以将可选(单值)字段更改为重复(多值)字段。读取旧数据的新代码会看到一个包含零个或一个元素的列表(取决于该字段是否存在)。读取新数据的旧代码只能看到列表的最后一个元素。