Panika: runtime error: index mimo dosahu [5] s dĺžkou 5 [zatvorené]

0

Otázka

Napísal som 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

Viem, že je dôvod, prečo je to dáva chyba, to je vzhľadom k stavu v pre slučky i<=10 a ak by som odstrániť = nebude mi chyba.

Ale povedzme, že chcem, aby kód, a to takým spôsobom, že nebudem sa chyby, ak I naďalej používať i<=10. Ako to môže byť vykonané?

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

Najlepšiu odpoveď

1

Chcem zákonníka, a to takým spôsobom, že som nedostanú chybu, ak i naďalej používať "i<=10". Ako to môže byť vykonané?

Môžete bezpečne slučky, ako je táto,

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

Alebo 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 zmeniť svoj stav, z i <= 10 na

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

alebo môžete zvýšiť svoje dĺžka reťazca, od x := "Hello" na

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

V iných jazykoch

Táto stránka je v iných jazykoch

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