Panică: eroare de execuție: index out of range [5], cu lungime 5 [închis]

0

Problema

Am scris acest program,

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

Eu stiu din ce motiv e da eroare, e din cauza stării în buclă pentru i<=10 și dacă am elimina = nu-mi va da eroare.

Dar să zicem că vreau să cod în așa fel că nu voi obține erori dacă eu încă mai folosesc i<=10. Cum poate fi făcut?

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

Cel mai bun răspuns

1

Vreau să cod în așa fel că nu va primi o eroare dacă am folosi în continuare "i<=10". Cum poate fi făcut?

Puteți în condiții de siguranță buclă de genul asta,

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

Sau asta,

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

Puteți fie să modificați starea ta, de i <= 10 pentru a

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

sau puteți crește lungimea șirului, de la x := "Hello" pentru a

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

În alte limbi

Această pagină este în alte limbi

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