Comment itérer sur une plage d'entiers de A à B en Go sans créer de slice ?
Bonjour à tous ! Je viens de commencer à apprendre Go après Python et j'ai rencontré un problème inattendu pour moi. En Python, j'ai l'habitude d'écrire `for i in range(10, 20)` pour simplement itérer sur les nombres de 10 à 19. En Go, je m'attendais à voir quelque chose de similaire, mais, d'après ce que j'ai compris, `range` en Go ne fonctionne qu'avec les slices, tableaux, chaînes, maps et channels.
J'ai besoin d'effectuer une tâche simple : afficher les nombres de 1 à 100. J'ai essayé d'écrire ceci :
```go
for i := range 100 {
fmt.Println(i)
}
```
Mais cela n'a pas fonctionné — le compilateur se plaint que `range` nécessite un itérateur. Ensuite, j'ai essayé de faire ceci :
```go
for i := 0; i < 100; i++ {
fmt.Println(i)
}
```
Cela fonctionne, mais semble très verbeux comparé à Python. Donc, il n'y a pas de moyen intégré en Go pour simplement itérer sur des nombres ? Dois-je à chaque fois écrire une construction avec initialisation, condition et incrément ? Et si j'ai besoin d'itérer sur les nombres de 5 à 15 ? Ou de 100 à 1 avec un pas de 2 ? N'y a-t-il vraiment pas de solution élégante ?
No answers yet.
Connectez-vous pour laisser une réponse
Blogs