Iniciante Fundamentos

Slices

Slices são coleções flexíveis, com tamanho variável. São muito mais usados que arrays no dia a dia.

Criando um slice

numeros := []int{1, 2, 3} // sem tamanho fixo entre os colchetes
nomes := []string{"Ana", "João"}

Adicionando com append

append retorna um novo slice com os elementos adicionados:

numeros := []int{1, 2}
numeros = append(numeros, 3)
numeros = append(numeros, 4, 5)
fmt.Println(numeros) // [1 2 3 4 5]

len e cap

s := []int{10, 20, 30}
fmt.Println(len(s)) // 3 (quantidade de elementos)
fmt.Println(cap(s)) // capacidade interna alocada

Fatiamento

Pegue uma parte com s[inicio:fim]. O fim não é incluído:

nums := []int{0, 1, 2, 3, 4}
fmt.Println(nums[1:3]) // [1 2]
fmt.Println(nums[:2])  // [0 1]
fmt.Println(nums[2:])  // [2 3 4]

Criando com make

s := make([]int, 3) // slice com 3 zeros: [0 0 0]

Resumo

  • Slices têm tamanho dinâmico, ao contrário dos arrays.
  • Use append para crescer e len/cap para medir.
  • O fatiamento extrai partes do slice.