
Баг: Константы и переменные ведут себя по-разному
Что делают:
Пишут var x int8 = 300 и удивляются ошибке компиляции. А потом пишут:
big := 300
var small int8 = int8(big) // работает, small == 44и думают, что Go непоследователен.
Почему ошибка:
Константы проверяются на этапе компиляции на переполнение. Переменные - нет. Go доверяет тебе, что ты знаешь, что делаешь.
Как правильно:
Понимать разницу. Если нужно отловить переполнение для переменных - пиши явную проверку.
Загрузка...