> Как реализовать добавление цифр к результату с помощью append и слайса байт в Go (Go)
Уровень: middle · Роль: backend · Категория: Технические вопросы
Компании: МайлРу
Стек: Go
> Пример ответа
Для добавления цифр к результату с помощью append и слайса байт в Go можно использовать следующий подход:
GOpackage mainimport "fmt"func digitsToBytes(num int) []byte {// Обработка нуляif num == 0 {return []byte{'0'}}// Определяем знакnegative := falseif num < 0 {negative = truenum = -num}// Создаем пустой слайс байтresult := make([]byte, 0)// Извлекаем цифры и добавляем их в обратном порядкеfor num > 0 {digit := byte(num % 10) + '0' // Преобразуем цифру в символresult = append(result, digit)num /= 10}// Если число отрицательное, добавляем минусif negative {result = append(result, '-')}// Переворачиваем слайс для правильного порядка цифрfor i, j := 0, len(result)-1; i < j; i, j = i+1, j-1 {result[i], result[j] = result[j], result[i]}return result}func main() {fmt.Println(string(digitsToBytes(12345))) // "12345"fmt.Println(string(digitsToBytes(-789))) // "-789"fmt.Println(string(digitsToBytes(0))) // "0"}
Ключевые моменты:
- Используем
appendдля динамического добавления байтов в слайс - Каждая цифра преобразуется в символ через
byte(num%10) + '0' - Цифры добавляются в обратном порядке, поэтому требуется реверс слайса
- Обрабатываем отрицательные числа и ноль как особые случаи
Этот метод эффективен, так как append автоматически управляет памятью, а работа с байтами минимизирует накладные расходы.
> Похожие задачи по backend
В чем разница наследования в Go и классического наследования
Уровень: seniorКатегория: Технические вопросы
Компания: Wildberries
Стек: Go
Какой план действий при перегрузке CPU и срабатывании алерта
Уровень: middleКатегория: Технические вопросы
Компания: Wildberries
Стек: Go
Используете ли трейсинг, например Jaeger
Уровень: seniorКатегория: Технические вопросы
Компания: Wildberries
Стек: Go
Используете ли алертинг через Grafana
Уровень: middleКатегория: Технические вопросы
Компания: Wildberries
Стек: Go
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью