Sobes.tech
Назад к вопросам
Junior — Middle
77

Можно ли реализовать или использовать динамический массив в языке Go и каким образом это делается?

Ответ от нейросети

sobes.tech AI

В Go динамические массивы реализуются с помощью срезов (slices). Срез — это структура, которая содержит указатель на массив, длину и ёмкость, и позволяет динамически изменять размер.

Пример создания и использования динамического массива:

package main
import "fmt"

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

    // Можно создавать срез с начальной ёмкостью
    s2 := make([]int, 0, 5) // длина 0, ёмкость 5
    s2 = append(s2, 10, 20)
    fmt.Println(s2)      // [10 20]
}

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

Таким образом, для динамического массива в Go достаточно использовать срезы и функцию append.