google/protocol-buffers

Protocol Buffers : Language Guide (proto3) - Scalar Value Types

C/H 2018. 8. 24. 08:30

Index

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비트 시스템에서 사용된다.

반응형