> Как реализовать добавление цифр к результату с помощью append и слайса байт в Go (Go)

Уровень: middle · Роль: backend · Категория: Технические вопросы

Компании: МайлРу

Стек: Go

> Пример ответа

Для добавления цифр к результату с помощью append и слайса байт в Go можно использовать следующий подход:

GO
package main
import "fmt"
func digitsToBytes(num int) []byte {
// Обработка нуля
if num == 0 {
return []byte{'0'}
}
// Определяем знак
negative := false
if num < 0 {
negative = true
num = -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 автоматически управляет памятью, а работа с байтами минимизирует накладные расходы.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью