
Structures de données Go
Arrays, slices, maps, structs, pointers, make vs new, nil values
1Qu'est-ce qu'un slice en Go ?
Qu'est-ce qu'un slice en Go ?
Réponse
Un slice est une vue dynamique sur un array sous-jacent qui permet de manipuler des séquences d'éléments de taille variable. Contrairement aux arrays qui ont une taille fixe définie à la compilation, les slices peuvent grandir ou rétrécir dynamiquement grâce à des opérations comme append. Cette flexibilité en fait la structure de données séquentielle la plus utilisée en Go pour stocker des collections d'éléments homogènes.
2Quelle est la différence principale entre un array et un slice en Go ?
Quelle est la différence principale entre un array et un slice en Go ?
Réponse
La différence fondamentale réside dans la taille : un array a une taille fixe définie à la compilation et fait partie du type lui-même, tandis qu'un slice a une taille dynamique qui peut changer à l'exécution. Cette distinction implique que deux arrays de tailles différentes sont considérés comme des types incompatibles, alors que tous les slices d'un même type d'élément sont compatibles. Les slices sont donc plus flexibles et plus couramment utilisés dans le code Go moderne.
3Comment créer un slice vide en Go ?
Comment créer un slice vide en Go ?
Réponse
La syntaxe littérale avec des crochets vides suivis d'accolades vides est la manière idiomatique de créer un slice vide initialisé. Cette approche crée un slice de longueur 0 mais non nil, prêt à recevoir des éléments via append. Contrairement à une simple déclaration qui donnerait un slice nil, cette initialisation explicite garantit un slice utilisable immédiatement sans risque de comportement inattendu lors de l'ajout d'éléments.
Quelle fonction utiliser pour initialiser un slice avec une capacité spécifique ?
Que se passe-t-il lors de l'ajout d'un élément à un slice dont la capacité est atteinte ?
+17 questions d'entretien
Autres sujets d'entretien Go
Les bases de Go
Interfaces Go
Gestion des erreurs
Goroutines basiques
Channels
Go Modules
Serveur HTTP
Client HTTP
Encodage JSON
database/sql
Package context
Testing
Patterns de concurrence
Primitives de synchronisation
Frameworks web Go
Design d'API REST
gRPC
Reflection
Gestion mémoire
Optimisation des performances
Generics
Design Patterns Go
Microservices
Sécurité & Authentication
Docker & Containerization
Kubernetes Basics
Go Avancé
Développement CLI
Maîtrise Go pour ton prochain entretien
Accède à toutes les questions, flashcards, tests techniques, exercices de code review et simulateurs d'entretien.
Commencer gratuitement