У меня очень простой вопрос, который меня долго расстраивает. Я имею дело с сетями и базами данных, поэтому большое количество данных, с которыми я имею дело, это 32-битные и 64-битные счетчики (без знака), 32-битные и 64-битные идентификаторы (также не имеют значимого отображения для знака). Я практически никогда не имею дело с реальным словом, которое можно выразить как отрицательное число.
Я и мои коллеги обычно используем неподписанные типы, как uint32_t
и uint64_t
для этих вопросов, и поскольку это происходит так часто, мы также используем их для индексов массивов и других распространенных целочисленных применений.
В то же время различные руководства по кодированию, которые я читаю (например, Google), не поощряют использование целочисленных типов без знака, и, насколько мне известно, ни Java, ни Scala не имеют целочисленных типов без знака.
Итак, я не мог понять, что правильно делать: использование подписанных значений в нашей среде было бы очень неудобно, в то же время руководства по кодированию настаивали на том, чтобы делать именно это.