Découpage de Slices/Tableaux existants
Fait partie de la section Fondamentaux du Journey GO de Coddy — leçon 80 sur 109.
Vous pouvez créer une nouvelle slice à partir d'une slice ou d'un tableau existant en spécifiant une plage avec la syntaxe [start:end].
Créez une slice de nombres :
numbers := []int{10, 20, 30, 40, 50}
fmt.Println("Original:", numbers)Extrayez les éléments de l'index 1 à 3 (excluant 3) :
slice1 := numbers[1:3]
fmt.Println("Slice [1:3]:", slice1)Résultat :
Original: [10 20 30 40 50]
Slice [1:3]: [20 30]Vous pouvez également omettre l'index de début ou de fin :
slice2 := numbers[:2] // Du début à l'index 2 (excluant 2)
slice3 := numbers[3:] // De l'index 3 à la fin
fmt.Println("Slice [:2]:", slice2)
fmt.Println("Slice [3:]:", slice3)Résultat :
Slice [:2]: [10 20]
Slice [3:]: [40 50]Défi
DébutantDans ce défi, vous allez vous entraîner à découper une tranche (slice) existante pour créer de nouvelles sous-tranches. Vous avez une tranche de fruits, et vous devez créer deux nouvelles tranches à partir de celle-ci :
- Une tranche contenant uniquement les trois premiers fruits
- Une tranche contenant uniquement les deux derniers fruits
Ensuite, affichez les deux nouvelles tranches pour vérifier votre travail.
Aide-mémoire
Créez une nouvelle tranche (slice) à partir d'une tranche ou d'un tableau existant en utilisant la syntaxe [start:end] :
numbers := []int{10, 20, 30, 40, 50}
slice1 := numbers[1:3] // Éléments de l'index 1 à 3 (excluant 3)
fmt.Println(slice1) // [20 30]Vous pouvez omettre l'index de début ou de fin :
slice2 := numbers[:2] // Du début à l'index 2 (excluant 2)
slice3 := numbers[3:] // De l'index 3 jusqu'à la fin
fmt.Println(slice2) // [10 20]
fmt.Println(slice3) // [40 50]Essayez vous-même
package main
import "fmt"
func main() {
// Voici notre tranche de fruits originale
fruits := []string{"apple", "banana", "orange", "grape", "kiwi"}
// TODO: Créer une nouvelle tranche appelée 'firstThree' contenant uniquement les trois premiers fruits
// TODO: Créer une nouvelle tranche appelée 'lastTwo' contenant uniquement les deux derniers fruits
// Afficher les résultats
fmt.Println("First three fruits:", firstThree)
fmt.Println("Last two fruits:", lastTwo)
}Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Fondamentaux
4Opérateurs de comparaison et logiques
Opérateurs de comparaison - Partie 1Opérateurs de comparaison - Partie 2Opérateur logique ANDOpérateur logique OROpérateur logique NOTBases de la priorité des opérateursRécapitulatif - Effectuer des comparaisons7Structures de contrôle : Les boucles
Explication de la boucle `for`Boucle For - Les basesBoucle For - Condition uniquementLe mot-clé `break`Le mot-clé `continue`Boucles imbriquéesRécapitulatif - Répéter des actions2Variables et types de données de base
Qu'est-ce qu'une variableInférence de type avec `:=` Entiers (int)Nombres à virgule flottanteBooléensChaînes de caractères (Strings)Valeurs zéroConstantesConventions de nommageRécapitulatif - Variables et types5Entrées/Sorties de base
Sortie formatéeVerbes de formatageAffichage des typesSaisie utilisateur de baseRécapitulatif - Entrées et Sorties8Fonctions
Comprendre les fonctionsDéclarer une fonctionAppeler des fonctionsParamètres de fonctionRetourner une valeur uniqueRetourner plusieurs valeursValeurs de retour nomméesBases de la portée des fonctionsRécapitulatif - Créer du code réutilisable11Types composites : Slices
Introduction aux SlicesDéclaration de littéraux de SlicesCréation de Slices avec `make`Longueur vs Capacité des SlicesAccès aux éléments d'un SliceAjout d'élémentsDécoupage de Slices/Tableaux existantsItération sur les SlicesCopie de SlicesRécapitulatif - Listes dynamiques3Opérateurs de base
Opérateurs arithmétiquesOpérateur de divisionL'opérateur moduloOpérateur d'affectationOpérateurs d'affectation augmentéeIncrémentation et décrémentationRécapitulatif - Calculs6Structure de contrôle : Les conditionnelles
L'instruction `if`Le mot-clé `else`Le mot-clé `else if`Masquage de variable dans `if`Initialisation des variablesL'instruction `switch``switch` avec expressions`switch` sans expressionLe mot-clé `fallthrough`Récapitulatif - Prendre des décisions9Pointeurs
Qu'est-ce qu'un pointeur ?Déclaration de variables pointeursL'opérateur d'adresseDéréférencement de pointeursUtiliser des pointeurs dans les fonctionsPointeurs NilRécapitulatif - Comprendre les pointeurs12Types composites : Maps
Introduction aux MapsDéclaration de littéraux de MapCréation de Maps avec `make`Ajout et mise à jour de paires clé-valeurAccès aux valeurs d'une MapVérification de l'existence d'une cléSuppression d'entrées de MapTaille d'une MapItération sur les MapsRécapitulatif - Stockage clé-valeur