Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Golang: optimization, conversion, number, string

Как оптимизировать преобразование числа в строку за один проход?

Вопрос затрагивает оптимизацию работы с числами и строками.

Короткий ответ

Используйте буфер ([]byte) и заполняйте его с конца, чтобы избежать реверса цифр.

Длинный ответ

Проблема:
Преобразование числа в строку вручную требует разбора цифр, их конвертации в символы и реверса цифр.

Оптимизация:

  1. Заранее вычисляем длину числа.

  2. Заполняем буфер с конца.

Пример:

func intToStringFast(num int) string {
    if num == 0 {
        return "0"
    }
    negative := num < 0
    if negative {
        num = -num
    }

    // Вычисляем длину
    length := 0
    for tmp := num; tmp > 0; tmp /= 10 {
        length++
    }

    // Буфер с запасом под знак
    buf := make([]byte, length)
    i := length - 1
    for num > 0 {
        buf[i] = byte('0' + num%10)
        num /= 10
        i--
    }

    if negative {
        return "-" + string(buf)
    }
    return string(buf)
}
  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    1

  • Сложность:

    4

Навыки

  • Golang

    Golang

Ключевые слова

#optimization

#conversion

#number

#string

Подпишись на Golang Developer в телеграм

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.