.. _ref_scala_types: Scalar Value Types ================== .. _ref_double: .. _ref_float: .. _ref_int32: .. _ref_int64: .. _ref_uint32: .. _ref_uint64: .. _ref_sint32: .. _ref_sint64: .. _ref_fixed32: .. _ref_fixed64: .. _ref_sfixed32: .. _ref_sfixed64: .. _ref_bool: .. _ref_string: .. _ref_bytes: .. csv-table:: Scalar Value Types and their language representation :header: ".proto Type", "Note", "C++", "Java", "Python", "Go", "C#", "PHP", "Ruby" :widths: auto "double", "", "double", "double", "float", "float64", "double", "float", "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.", "int32", "int", "int", "int32", "int", "integer", "Bignum or Fixnum (as required)" "int64", "Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead.", "int64", "long", "int/long", "int64", "long", "integer/string", "Bignum" "uint32", "Uses variable-length encoding.", "uint32", "int", "int/long", "uint32", "uint", "integer", "Bignum or Fixnum (as required)" "uint64", "Uses variable-length encoding.", "uint64", "long", "int/long", "uint64", "ulong", "integer/string", "Bignum or Fixnum (as required)" "sint32", "Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s.", "int32", "int", "int", "int32", "int", "integer", "Bignum or Fixnum (as required)" "sint64", "Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s.", "int64", "long", "int/long", "int64", "long", "integer/string", "Bignum" "fixed32", "Always four bytes. More efficient than uint32 if values are often greater than 2^28.", "uint32", "int", "int", "uint32", "uint", "integer", "Bignum or Fixnum (as required)" "fixed64", "Always eight bytes. More efficient than uint64 if values are often greater than 2^56.", "uint64", "long", "int/long", "uint64", "ulong", "integer/string", "Bignum" "sfixed32", "Always four bytes.", "int32", "int", "int", "int32", "int", "integer", "Bignum or Fixnum (as required)" "sfixed64", "Always eight bytes.", "int64", "long", "int/long", "int64", "long", "integer/string", "Bignum" "bool", "", "bool", "boolean", "boolean", "bool", "bool", "boolean", "TrueClass/FalseClass" "string", "A string must always contain UTF-8 encoded or 7-bit ASCII text.", "string", "String", "str/unicode", "string", "string", "string", "String (UTF-8)" "bytes", "May contain any arbitrary sequence of bytes.", "string", "ByteString", "str", "[]byte", "ByteString", "string", "String (ASCII-8BIT)"