Panique: erreur d'exécution: index out of range [5] avec une longueur de 5 [fermé]

0

La question

J'ai écrit ce programme,

package main

import "fmt"

func main() {
    x := "Hello"

    for i := 0; i <= 10; i++ {
        fmt.Printf("%#U\n", x[i])
    }
}

https://go.dev/play/p/yrMu2hlAvkZ

panic: runtime error: index out of range [5] with length 5

Je connais la raison pourquoi il est ce qui donne l'erreur, c'est en raison de la condition de la boucle i<=10 et si je supprime le = il ne veut pas me donner l'erreur.

Mais disons que je veux le code de telle manière que je ne peux pas les erreurs si je continue à l'utiliser i<=10. Comment peut-il être fait?

for-loop go
2021-11-24 04:33:54
2

La meilleure réponse

1

Je veux le code de telle manière que je ne rentrerai pas d'erreur si je continue à l'utiliser "i<=10". Comment peut-il être fait?

Vous pouvez en toute sécurité en boucle comme ceci,

package main

import "fmt"

func main() {
    x := "Hello"
    for i := 0; i <= 10 && i < len(x); i++ {
        fmt.Printf("%#U\n", x[i])
    }
}

https://go.dev/play/p/2NknjS3Ql6k

Ou cette,

package main

import "fmt"

func main() {
    x := "Hello"
    for i := 0; i <= 10; i++ {
        fmt.Printf("%#U\n", x[i%len(x)])
    }
}

https://go.dev/play/p/0eKTcxXipwB

2021-11-24 06:11:58
0

Vous pouvez changer votre état, de i <= 10 pour

i <= 4 // 4 is the last index of your string

ou vous pouvez augmenter la longueur de la chaîne, à partir de x := "Hello" pour

x := "Hello World"
2021-11-24 05:52:29

Dans d'autres langues

Cette page est dans d'autres langues

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................