標(biāo)量消息字段可以具有以下類型之一 齿拂,該表顯示 .proto 文件中指定的類型新翎,以及自動(dòng)生成的類中的相應(yīng)類型:
.proto 類型 | Go 類型 | 注釋 | 默認(rèn)值 |
---|---|---|---|
int32 | int | 使用可變長度編碼。 對(duì)負(fù)數(shù)進(jìn)行編碼效率低下终蒂。如果您的字段可能有負(fù)值席里,請(qǐng)改用 sint32。 | 0 |
int64 | long | 使用可變長度編碼阵具。 對(duì)負(fù)數(shù)進(jìn)行編碼效率低下碍遍。如果您的字段可能有負(fù)值,請(qǐng)改用 sint64阳液。 | 0 |
uint32 | uint | 使用可變長度編碼怕敬。 | 0 |
uint64 | ulong | 使用可變長度編碼。 | 0 |
sint32 | int | 使用可變長度編碼趁舀。 帶符號(hào)的 int 值赖捌。 這些比常規(guī) int32 更有效地編碼負(fù)數(shù)。 | 0 |
sint64 | long | 使用可變長度編碼矮烹。 帶符號(hào)的 int 值越庇。 這些比常規(guī) int64 更有效地編碼負(fù)數(shù)。 | 0 |
fixed32 | uint32 | 總是四個(gè)字節(jié)奉狈。 如果值通常大于 2^28卤唉,則比 uint32 更有效。 | 0 |
fixed64 | uint64 | 總是八個(gè)字節(jié)仁期。 如果值通常大于 2^56桑驱,則比 uint64 更有效。 | 0 |
sfixed32 | int32 | 總是四個(gè)字節(jié)跛蛋。 | 0 |
sfixed64 | int64 | 總是八個(gè)字節(jié)熬的。 | 0 |
float | float32 | 0 | |
double | float64 | 0 | |
bool | bool | false | |
string | string | 字符串必須始終包含 UTF-8 編碼或 7 位 ASCII 文本,并且不能超過 2^32赊级。 | empty string |
bytes | []byte | 可以包含不超過 2^32 的任意字節(jié)序列押框。 | empty bytes |
- 對(duì)于枚舉,默認(rèn)值是第一個(gè)定義的枚舉值理逊,必須為 0橡伞。
- 對(duì)于消息字段盒揉,未設(shè)置該字段。 它的確切值取決于語言兑徘。
- 請(qǐng)注意刚盈,對(duì)于標(biāo)量消息字段,一旦解析了消息挂脑,就無法判斷一個(gè)字段是顯式設(shè)置為默認(rèn)值,還是根本沒有設(shè)置(例如布爾值是否設(shè)置為 false)藕漱。
- if a scalar message field is set to its default, the value will not be serialized on the wire.