
Estruturas de dados em Go
Arrays, slices, maps, structs, pointers, make vs new, valores nil
1O que é um slice em Go?
O que é um slice em Go?
Resposta
Um slice é uma visão dinâmica sobre um array subjacente que permite manipular sequências de elementos de tamanho variável. Diferentemente dos arrays, que têm tamanho fixo definido em tempo de compilação, os slices podem crescer ou encolher dinamicamente por meio de operações como append. Essa flexibilidade os torna a estrutura de dados sequencial mais usada em Go para armazenar coleções de elementos homogêneos.
2Qual é a principal diferença entre um array e um slice em Go?
Qual é a principal diferença entre um array e um slice em Go?
Resposta
A diferença fundamental está no tamanho: um array tem tamanho fixo definido em tempo de compilação e faz parte do próprio tipo, enquanto um slice tem tamanho dinâmico que pode mudar em tempo de execução. Essa distinção implica que dois arrays de tamanhos diferentes são considerados tipos incompatíveis, ao passo que todos os slices do mesmo tipo de elemento são compatíveis. Por isso, os slices são mais flexíveis e mais usados no código Go moderno.
3Como criar um slice vazio em Go?
Como criar um slice vazio em Go?
Resposta
A sintaxe literal com colchetes vazios seguidos de chaves vazias é a maneira idiomática de criar um slice vazio inicializado. Essa abordagem cria um slice de comprimento 0 porém não nil, pronto para receber elementos via append. Diferentemente de uma simples declaração que resultaria em um slice nil, essa inicialização explícita garante um slice utilizável imediatamente sem risco de comportamento inesperado ao adicionar elementos.
Qual função deve ser usada para inicializar um slice com uma capacidade específica?
O que acontece ao adicionar um elemento a um slice cuja capacidade foi atingida?
+17 perguntas de entrevista
Outros temas de entrevista Go
Fundamentos de Go
Interfaces em Go
Tratamento de erros
Goroutines básicas
Channels
Go Modules
Servidor HTTP
Cliente HTTP
Codificação JSON
Database/SQL
Pacote context
Testing
Padrões de concorrência
Primitivas de sincronização
Frameworks web Go
Design de API REST
gRPC
Reflection
Gerenciamento de memória
Otimização de desempenho
Generics
Go Design Patterns
Microservices
Segurança e autenticação
Docker & Containerization
Kubernetes Basics
Go Avançado
Desenvolvimento de CLI
Domine Go para sua proxima entrevista
Acesse todas as perguntas, flashcards, testes tecnicos, exercicios de code review e simuladores de entrevista.
Comece gratis