Guide complet sur le mot-clé range
en Go pour les débutants
Bonjour, aspirants programmeurs ! Aujourd'hui, nous allons entreprendre un voyage passionnant dans le monde de la programmation Go, en nous concentrant spécifiquement sur le mot-clé range
. En tant que votre professeur de science informatique du coin, je suis là pour vous guider à travers ce concept avec de nombreux exemples et explications. Alors, prenez votre boisson favorite, installez-vous confortablement, et plongons dedans !
Qu'est-ce que range
?
Avant de commencer à coder, comprenons ce qu'est range
. En Go, range
est comme un guide magique pour vos structures de données. Il vous aide à itérer sur divers types de données, y compris les tableaux, les tranches, les maps, les chaînes de caractères et les canaux. Pensez-y comme un couteau suisse pour boucler sur des collections de données.
La syntaxe de range
La syntaxe de base de range
est assez simple :
for index, value := range collection {
// Votre code ici
}
Ici, index
vous donne la position de l'élément, et value
vous donne l'élément lui-même. Mais ne vous inquiétez pas si cela semble abstrait pour le moment - nous verrons bientôt de nombreux exemples !
Utilisation de range
avec des tableaux et des tranches
Commençons par un exemple simple utilisant un tableau :
package main
import "fmt"
func main() {
fruits := [3]string{"apple", "banana", "cherry"}
for index, fruit := range fruits {
fmt.Printf("Index: %d, Fruit: %s\n", index, fruit)
}
}
Lorsque vous exécutez ce code, vous verrez :
Index: 0, Fruit: apple
Index: 1, Fruit: banana
Index: 2, Fruit: cherry
Que se passe-t-il ici ? Le mot-clé range
nous aide à boucler sur notre tableau fruits
. Pour chaque itération, il nous donne l'index et la valeur (nom du fruit) à cet index.
Utiliser uniquement l'index
Parfois, vous pourriez n'avoir besoin que de l'index. Dans ce cas, vous pouvez omittre la variable de valeur :
for index := range fruits {
fmt.Printf("Index: %d\n", index)
}
Utiliser uniquement la valeur
Ou peut-être que vous ne vous intéressez que aux valeurs et non aux indices. Vous pouvez utiliser l'identificateur vide _
pour ignorer l'index :
for _, fruit := range fruits {
fmt.Printf("Fruit: %s\n", fruit)
}
Utilisation de range
avec des maps
Les maps en Go sont comme des coffres au trésor pleins de paires clé-valeur. Voyons comment range
fonctionne avec elles :
package main
import "fmt"
func main() {
ages := map[string]int{
"Alice": 25,
"Bob": 30,
"Charlie": 35,
}
for name, age := range ages {
fmt.Printf("%s a %d ans\n", name, age)
}
}
Sortie :
Alice a 25 ans
Bob a 30 ans
Charlie a 35 ans
Ici, range
nous donne à la fois la clé (nom) et la valeur (âge) pour chaque entrée dans la map.
Utilisation de range
avec des chaînes de caractères
Les chaînes de caractères en Go sont des séquences de bytes, et range
peut nous aider à les itérer :
package main
import "fmt"
func main() {
message := "Hello, 世界"
for index, runeValue := range message {
fmt.Printf("Index: %d, Caractère: %c, Unicode: %U\n", index, runeValue, runeValue)
}
}
Cet exemple montre comment range
gère correctement les caractères multi-octets (comme en chinois).
Utilisation de range
avec des canaux
Les canaux sont une fonctionnalité unique en Go pour la communication entre goroutines. Voici comment range
fonctionne avec les canaux :
package main
import "fmt"
func main() {
ch := make(chan int)
go func() {
ch <- 1
ch <- 2
ch <- 3
close(ch)
}()
for num := range ch {
fmt.Println(num)
}
}
Dans cet exemple, range
continue de recevoir des valeurs du canal jusqu'à ce qu'il soit fermé.
Méthodes courantes de range
Voici un tableau récapitulatif des utilisations courantes de range
:
Type de données | Syntaxe | Description |
---|---|---|
Tableau/Tranche | for index, value := range array |
Itère sur chaque élément, fournissant l'index et la valeur |
Map | for key, value := range map |
Itère sur chaque paire clé-valeur |
Chaîne de caractères | for index, runeValue := range string |
Itère sur chaque point de code Unicode |
Canal | for value := range channel |
Reçoit des valeurs du canal jusqu'à ce qu'il soit fermé |
Conclusion
Et voilà, les amis ! Nous avons effectué un grand tour du mot-clé range
en Go. De los arrays aux maps, des chaînes de caractères aux canaux, range
est votre compagnon de confiance pour itérer sur les structures de données en Go.
Souvenez-vous, la pratique rend parfait. Essayez d'écrire vos propres programmes utilisant range
avec différents types de données. Expérimentez, faites des erreurs, et apprenez-en. C'est la meilleure façon de devenir compétent en programmation.
Avant de me quitter, voici un peu d'humour programmation : Pourquoi les programmeurs préfèrent-ils le mode sombre ? Parce que la lumière attire les bugs ! ?
Bonne programmation, et puissé le range
être avec vous !
Credits: Image by storyset