Index
- Defining A Message Type
- Scalar Value Types
- Default Values
- Enumerations
- Using Other Message Types
- Nested Types
- Updating A Message Type
- Unknown Fields
- Any
- Oneof
- Maps
- Packages
- Defining Services
- JSON Mapping
- Options
- Generating Your Classes
Scalar Value Types 스칼라 값 유형
A scalar message field can have one of the following types
– the table shows the type specified in the .proto file, and the corresponding type in the automatically generated class:
스칼라 메시지 필드는 다음 유형 중 하나일 수 있다.
– 표에는 .proto 파일에 지정된 유형과 자동 생성된 클래스의 해당 유형이 나와 있다.
.proto Type | Notes | C++ Type | Java Type | Python Type[2] | Go Type | Ruby Type | C# Type | PHP Type |
---|---|---|---|---|---|---|---|---|
double | double | double | float | float64 | Float | double | float | |
float | float | float | float | float32 | Float | float | float | |
int32 | Uses variable-length encoding.
Inefficient for encoding negative numbers
– if your field is likely to have negative values, use sint32 instead. 가변 길이 인코딩을 사용한다. 음수를 인코딩하는 데 비효율적이다. - 필드에 음수 값이 있을 가능성이 있으면 sint32를 대신 사용하라. |
int32 | int | int | int32 | Fixnum or Bignum (as required) | int | integer |
int64 | Uses variable-length encoding.
Inefficient for encoding negative numbers
– if your field is likely to have negative values, use sint64 instead. 가변 길이 인코딩을 사용한다. 음수를 인코딩하는 데 비효율적이다. – 필드에 음수 값이 있을 가능성이 높은 경우 sint64를 대신 사용하라. |
int64 | long | int/long[3] | int64 | Bignum | long | integer/string[5] |
uint32 | Uses variable-length encoding. 가변 길이 인코딩을 사용한다. |
uint32 | int[1] | int/long[3] | uint32 | Fixnum or Bignum (as required) | uint | integer |
uint64 | Uses variable-length encoding. 가변 길이 인코딩을 사용한다. |
uint64 | long[1] | int/long[3] | uint64 | Bignum | ulong | integer/string[5] |
sint32 | Uses variable-length encoding.
Signed int value.
These more efficiently encode negative numbers than regular int32s. 가변 길이 인코딩을 사용한다. 부호가 있는 int 값. 이는 일반 int32보다 음수를 더 효율적으로 인코딩한다. |
int32 | int | int | int32 | Fixnum or Bignum (as required) | int | integer |
sint64 | Uses variable-length encoding.
Signed int value.
These more efficiently encode negative numbers than regular int64s. 가변 길이 인코딩을 사용한다. 부호가 있는 int 값. 이는 일반 int64s보다 음수를 더 효율적으로 인코딩한다. |
int64 | long | int/long[3] | int64 | Bignum | long | integer/string[5] |
fixed32 | Always four bytes.
More efficient than uint32 if values are often greater than 228. 항상 4바이트. 값이 2 28 보다 큰 경우가 많다. |
uint32 | int[1] | int/long[3] | uint32 | Fixnum or Bignum (as required) | uint | integer |
fixed64 | Always eight bytes.
More efficient than uint64 if values are often greater than 256. 항상 8바이트. 값이 2 56보다 큰 경우 uint64보다 효율적이다. |
uint64 | long[1] | int/long[3] | uint64 | Bignum | ulong | integer/string[5] |
sfixed32 | Always four bytes. 항상 4바이트 |
int32 | int | int | int32 | Fixnum or Bignum (as required) | int | integer |
sfixed64 | Always eight bytes. 항상 8바이트. |
int64 | long | int/long[3] | int64 | Bignum | long | integer/string[5] |
bool | bool | boolean | bool | bool | TrueClass/FalseClass | bool | boolean | |
string | A string must always contain UTF-8 encoded or 7-bit ASCII text. 문자열은 항상 UTF-8 인코딩 또는 7비트 ASCII 텍스트가 포함되어야 한다. |
string | String | str/unicode[4] | string | String (UTF-8) | string | string |
bytes | May contain any arbitrary sequence of bytes. 임의 바이트 시퀀스를 포함할 수 있다. |
string | ByteString | str | []byte | String (ASCII-8BIT) | ByteString | string |
You can find out more about how these types are encoded when you serialize your message in Protocol Buffer Encoding.
프로토콜 버퍼 인코딩에서 메시지를 직렬화할 때 이러한 유형이 인코딩되는 방법에 대해 자세히 알아볼 수 있다.
[1] In Java, unsigned 32-bit and 64-bit integers are represented using their signed counterparts, with the top bit simply being stored in the sign bit.
[1] Java에서 서명되지 않은 32비트 및 64비트 정수는 서명된 정수를 사용하여 표현되며, 최상위 비트는 단순히 기호비트에 저장된다.
[2] In all cases, setting values to a field will perform type checking to make sure it is valid.
[2] 모든 경우, 값을 필드에 설정하면 유형검사를 수행하여 유효한지 확인한다.
[3] 64-bit or unsigned 32-bit integers are always represented as long when decoded, but can be an int if an int is given when setting the field.
In all cases, the value must fit in the type represented when set.
See [2].
[3] 64비트 또는 부호 없는 32비트 정수는 디코딩할 때 항상 길게 표시되지만 필드를 설정할 때 int가 주어진 경우 int가 될 수 있습니다.
모든 경우 값은 설정 시 표시되는 유형에 맞아야 한다.
[2]를 참조하라.
[4] Python strings are represented as unicode on decode but can be str if an ASCII string is given (this is subject to change).
[4] Python 문자열은 디코딩 시 유니코드로 표시되지만 ASCII 문자열이 제공되면 문자열이 달라질 수 있다.
[5] Integer is used on 64-bit machines and string is used on 32-bit machines.
[5] 정수는 64비트 시스템에서 사용되고 문자열은 32비트 시스템에서 사용된다.
'google > protocol-buffers' 카테고리의 다른 글
Protocol Buffers : Language Guide (proto3) - Enumerations (0) | 2018.08.27 |
---|---|
Protocol Buffers : Language Guide (proto3) - Default Values (0) | 2018.08.25 |
Protocol Buffers : Language Guide (proto3) - Defining A Message Type (0) | 2018.08.23 |
Protocol Buffers : Tutorials Common Comment, 프로토콜 버퍼 공통 설명 (0) | 2018.08.22 |
Protocol Buffers : Developer Guide (0) | 2018.08.21 |