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
appendpara crescer elen/cappara medir. - O fatiamento extrai partes do slice.