вторник, 12 февраля 2019 г.

Go FAQ: Почему Go не предоставляет неявных числовых преобразований?

Удобство автоматического преобразования между числовыми типами в C перевешивается путаницей, которую это вызывает. Как происходит преобразование когда выражение не подписано? Насколько велика цена преобразования? Происходит ли переполнение при преобразовании? Является ли результат портативным, независимым от машины, на которой он выполняется? Это также усложняет компилятор; "обычные арифметические преобразования" не просты в реализации и несовместимы между архитектурами. Из соображений мобильности создатели Go решили сделать все ясно и понятно ценой некоторых явных преобразований в коде. Определение констант в Go - значений произвольной точности, свободных от аннотации подписи и размера - значительно улучшает положение дел, однако.

Связанная деталь заключается в том, что, в отличие от C, int и int64 разные типы, даже если int является 64-битным типом. int тип является общим; если вы заботитесь о том, сколько битов содержит целое число, Go призывает вас быть явным.


Читайте также:


Комментариев нет:

Отправить комментарий