Panika: chyba runtime: index je mimo rozsah [5] s délkou 5 [uzavřen]

0

Otázka

Napsal jsem tento 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

Vím, že důvod, proč to dává error, je to vzhledem ke stavu, v pro smyčce i<=10 a pokud jsem odstranit = to se mi chyba.

Ale řekněme, že chci, aby kód takovým způsobem, že nebudu mít chyby, pokud jsem stále používat i<=10. Jak to může být provedeno?

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

Nejlepší odpověď

1

Chci, aby kód takovým způsobem, že nebude chyba, jestli jsem stále používat "i<=10". Jak to může být provedeno?

Můžete bezpečně smyčku jako je tento,

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

Nebo to,

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

Můžete buď změnit váš zdravotní stav, z i <= 10 k

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

nebo můžete zvýšit své délce řetězce, od x := "Hello" k

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

V jiných jazycích

Tato stránka je v jiných jazycích

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