Sobes.tech
Junior — Middle

É possível implementar ou usar um array dinâmico na linguagem Go e como isso é feito?

sobes.tech IA

Resposta da IA

Em Go, arrays dinâmicos são implementados usando slices. Um slice é uma estrutura que contém um ponteiro para um array, um comprimento e uma capacidade, e permite alterar o tamanho de forma dinâmica.

Exemplo de criação e uso de um array dinâmico:

package main
import "fmt"

func main() {
    var s []int          // slice vazio
    s = append(s, 1)     // adiciona um elemento
    s = append(s, 2, 3)  // adiciona vários elementos
    fmt.Println(s)       // [1 2 3]

    // Pode-se criar um slice com capacidade inicial
    s2 := make([]int, 0, 5) // comprimento 0, capacidade 5
    s2 = append(s2, 10, 20)
    fmt.Println(s2)      // [10 20]
}

Os slices expandem-se automaticamente ao adicionar elementos com append; se necessário, um novo array maior é alocado e os dados são copiados.

Assim, para um array dinâmico em Go, basta usar slices e a função append.