# Go Data Structures (Go) > Arrays, slices, maps, structs, pointers, make vs new, nil values - 20 interview questions - Junior - [Interview Questions: Go](https://sharpskill.dev/en/technologies/go/interview-questions.md) ## 1. What is a slice in Go? **Answer** A slice is a dynamic view over an underlying array that allows manipulation of variable-length sequences of elements. Unlike arrays which have a fixed size defined at compile time, slices can grow or shrink dynamically through operations like append. This flexibility makes them the most commonly used sequential data structure in Go for storing collections of homogeneous elements. ## 2. What is the main difference between an array and a slice in Go? **Answer** The fundamental difference lies in size: an array has a fixed size defined at compile time and is part of the type itself, while a slice has a dynamic size that can change at runtime. This distinction means that two arrays of different sizes are considered incompatible types, whereas all slices of the same element type are compatible. Slices are therefore more flexible and more commonly used in modern Go code. ## 3. How to create an empty slice in Go? **Answer** The literal syntax with empty brackets followed by empty braces is the idiomatic way to create an initialized empty slice. This approach creates a slice of length 0 but non-nil, ready to receive elements via append. Unlike a simple declaration which would yield a nil slice, this explicit initialization guarantees a slice usable immediately without risk of unexpected behavior when adding elements. ## 17 more questions available - Which function should be used to initialize a slice with a specific capacity? - What happens when adding an element to a slice whose capacity is reached? Sign up for free: https://sharpskill.dev/en/login ## Other Go interview topics - [Go Basics](https://sharpskill.dev/en/technologies/go/interview-questions/go-basics.md): 25 questions, Junior - [Go Interfaces](https://sharpskill.dev/en/technologies/go/interview-questions/go-interfaces.md): 18 questions, Junior - [Error Handling](https://sharpskill.dev/en/technologies/go/interview-questions/error-handling.md): 20 questions, Junior - [Goroutines Basics](https://sharpskill.dev/en/technologies/go/interview-questions/goroutines-basics.md): 20 questions, Junior - [Channels](https://sharpskill.dev/en/technologies/go/interview-questions/channels.md): 22 questions, Junior - [Go Modules](https://sharpskill.dev/en/technologies/go/interview-questions/go-modules.md): 18 questions, Mid-Level - [HTTP Server](https://sharpskill.dev/en/technologies/go/interview-questions/http-server.md): 24 questions, Mid-Level - [HTTP Client](https://sharpskill.dev/en/technologies/go/interview-questions/http-client.md): 18 questions, Mid-Level - [JSON Encoding](https://sharpskill.dev/en/technologies/go/interview-questions/json-encoding.md): 20 questions, Mid-Level - [Database/SQL](https://sharpskill.dev/en/technologies/go/interview-questions/database-sql.md): 22 questions, Mid-Level - [Context Package](https://sharpskill.dev/en/technologies/go/interview-questions/context-package.md): 20 questions, Mid-Level - [Testing](https://sharpskill.dev/en/technologies/go/interview-questions/testing.md): 22 questions, Mid-Level - [Concurrency Patterns](https://sharpskill.dev/en/technologies/go/interview-questions/concurrency-patterns.md): 24 questions, Mid-Level - [Sync Primitives](https://sharpskill.dev/en/technologies/go/interview-questions/sync-primitives.md): 22 questions, Mid-Level - [Go Web Frameworks](https://sharpskill.dev/en/technologies/go/interview-questions/go-web-frameworks.md): 20 questions, Mid-Level - [REST API Design](https://sharpskill.dev/en/technologies/go/interview-questions/rest-api-design.md): 20 questions, Mid-Level - [gRPC](https://sharpskill.dev/en/technologies/go/interview-questions/grpc.md): 22 questions, Mid-Level - [Reflection](https://sharpskill.dev/en/technologies/go/interview-questions/reflection.md): 20 questions, Senior - [Memory Management](https://sharpskill.dev/en/technologies/go/interview-questions/memory-management.md): 24 questions, Senior - [Performance Optimization](https://sharpskill.dev/en/technologies/go/interview-questions/performance-optimization.md): 22 questions, Senior - [Generics](https://sharpskill.dev/en/technologies/go/interview-questions/generics.md): 20 questions, Senior - [Go Design Patterns](https://sharpskill.dev/en/technologies/go/interview-questions/design-patterns.md): 24 questions, Senior - [Microservices](https://sharpskill.dev/en/technologies/go/interview-questions/microservices.md): 24 questions, Senior - [Security & Authentication](https://sharpskill.dev/en/technologies/go/interview-questions/security-authentication.md): 24 questions, Senior - [Docker & Containerization](https://sharpskill.dev/en/technologies/go/interview-questions/docker-containerization.md): 20 questions, Senior - [Kubernetes Basics](https://sharpskill.dev/en/technologies/go/interview-questions/kubernetes-basics.md): 22 questions, Senior - [Advanced Go](https://sharpskill.dev/en/technologies/go/interview-questions/advanced-go.md): 20 questions, Senior - [CLI Development](https://sharpskill.dev/en/technologies/go/interview-questions/cli-development.md): 20 questions, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/en/technologies/go/interview-questions/go-data-structures