
Estructuras de datos en Go
Arrays, slices, maps, structs, pointers, make vs new, valores nil
1¿Qué es un slice en Go?
¿Qué es un slice en Go?
Respuesta
Un slice es una vista dinámica sobre un array subyacente que permite manipular secuencias de elementos de longitud variable. A diferencia de los arrays, que tienen un tamaño fijo definido en tiempo de compilación, los slices pueden crecer o reducirse dinámicamente mediante operaciones como append. Esta flexibilidad los convierte en la estructura de datos secuencial más usada en Go para almacenar colecciones de elementos homogéneos.
2¿Cuál es la diferencia principal entre un array y un slice en Go?
¿Cuál es la diferencia principal entre un array y un slice en Go?
Respuesta
La diferencia fundamental está en el tamaño: un array tiene un tamaño fijo definido en tiempo de compilación y forma parte del propio tipo, mientras que un slice tiene un tamaño dinámico que puede cambiar en tiempo de ejecución. Esta distinción implica que dos arrays de tamaños distintos se consideran tipos incompatibles, mientras que todos los slices del mismo tipo de elemento son compatibles. Por ello, los slices son más flexibles y más usados en el código Go moderno.
3¿Cómo crear un slice vacío en Go?
¿Cómo crear un slice vacío en Go?
Respuesta
La sintaxis literal con corchetes vacíos seguidos de llaves vacías es la manera idiomática de crear un slice vacío inicializado. Este enfoque crea un slice de longitud 0 pero no nil, listo para recibir elementos mediante append. A diferencia de una simple declaración que daría un slice nil, esta inicialización explícita garantiza un slice utilizable de inmediato sin riesgo de comportamiento inesperado al añadir elementos.
¿Qué función se debe usar para inicializar un slice con una capacidad específica?
¿Qué ocurre al añadir un elemento a un slice cuya capacidad se ha alcanzado?
+17 preguntas de entrevista
Otros temas de entrevista Go
Fundamentos de Go
Interfaces en Go
Manejo de errores
Goroutines básicas
Channels
Go Modules
Servidor HTTP
Cliente HTTP
Codificación JSON
Database/SQL
Paquete context
Testing
Patrones de concurrencia
Primitivas de sincronización
Frameworks web de Go
Diseño de API REST
gRPC
Reflection
Gestión de memoria
Optimización del rendimiento
Generics
Go Design Patterns
Microservices
Seguridad y autenticación
Docker & Containerization
Kubernetes Basics
Go Avanzado
Desarrollo de CLI
Domina Go para tu próxima entrevista
Accede a todas las preguntas, flashcards, tests técnicos, ejercicios de code review y simuladores de entrevista.
Empieza gratis