
Баг: Путаница между `Atoi` и `ParseInt` для не-десятичных систем
Что делают:
Пытаются распарсить шестнадцатеричное число "ff" с помощью strconv.Atoi("ff"). Получают ошибку.
Почему:Atoi работает только для десятичных чисел (основание 10). Он не принимает префиксы 0x или буквы a-f.
Как правильно:
Использовать strconv.ParseInt с указанием основания:
num, err := strconv.ParseInt("ff", 16, 64) // вернёт 255Дополнительно:
Для восьмеричных чисел основание 8, для двоичных - 2. Если передать основание 0, ParseInt сам определит по префиксам: 0x → 16, 0 → 8, иначе 10.
Загрузка...