📊 Cap 05: Vetores (Arrays) e Slices: Estrutura Interna (Pointer, Len, Cap) e append - Exemplos Práticos
Código executável completo demonstrando os conceitos abordados em Go.
🗺️ Fluxo de Execução
flowchart TD
SLICE["Slice Header (24 bytes em 64-bit)"]
SLICE --> PTR["1. Pointer: Aponta para o elemento no Array Subjacente"]
SLICE --> LEN["2. Length (len): Quantidade de elementos visíveis"]
SLICE --> CAP["3. Capacity (cap): Capacidade total antes de realocação de memória"]
style SLICE fill:#e1f5fe,stroke:#03a9f4,stroke-width:2px
style PTR fill:#e8f5e9,stroke:#4caf50,stroke-width:1px
📄 Código de Demonstração (slices_demo.go)
package main
import "fmt"
func main() {
\numeros := make([]int, 0, 4)
\fmt.Printf("len: %d, cap: %d\n", len(numeros), cap(numeros))
\numeros = append(numeros, 10, 20, 30)
\fmt.Printf("len: %d, cap: %d, dados: %v\n", len(numeros), cap(numeros), numeros)
}
🚀 Saída Esperada no Terminal
$ go run slices_demo.go
len: 0, cap: 4
len: 3, cap: 4, dados: [10 20 30]
🧭 Navegação Rápida
| 📖 Teoria | 📊 Slides | 🧠 Quiz | 💻 Exemplos | 🧩 Exercícios | | :— | :— | :— | :— | :— | | Ler Tópico | Ver Slides | Fazer Quiz | Ver Código | Praticar |