Почему я получаю ошибку Go "panic: strconv: недопустимая база AppendInt/FormatInt"

Я не могу понять, почему я получаю это сообщение об ошибке во время выполнения. Он запускается даже с самой простой однострочной:strconv.FormatUint(uint64(123), 64)

Я понял что-то очень неправильно здесь? Код компилируется просто отлично.

РЕДАКТИРОВАТЬ: нашел решение (как позже указал Тим Купер). Я думаю, что примеры в документации сбивают с толку:

s := strconv.FormatBool(true)
s := strconv.FormatFloat(3.1415, 'E', -1, 64)
s := strconv.FormatInt(-42, 16)
s := strconv.FormatUint(42, 16)

Когда вы используете только базы 64 и 16 в примерах, очень легко сделать неправильный вывод. Однако теперь, когда я знаю, что было не так, сообщение об ошибке имеет гораздо больше смысла.

1 ответ

Решение

Base 64 не поддерживается, как указано в документации:

func FormatUint(i uint64, base int) string

FormatUint возвращает строковое представление i в заданной базе для 2 <= base <= 36.

Другие вопросы по тегам