Sobes.tech
Junior — Middle

Poți explica cum este implementat și funcționează un array dinamic în limbajul Go?

sobes.tech AI

Răspuns de la AI

В языке Go динамический массив реализован через тип slice — это структура, которая содержит указатель на массив, длину и ёмкость.

Когда создаётся срез, он указывает на базовый массив фиксированного размера. Если при добавлении элементов длина среза достигает ёмкости, создаётся новый массив с увеличенной ёмкостью (обычно в 2 раза больше), и данные копируются в него. Это позволяет эффективно управлять памятью и динамически расширять массив.

Пример:

var s []int           // пустой срез
s = append(s, 1)      // добавляем элемент
s = append(s, 2, 3)   // добавляем несколько элементов
fmt.Println(s)        // [1 2 3]

Здесь append автоматически расширяет базовый массив при необходимости, скрывая детали управления памятью от разработчика.