Panika: błąd w czasie wykonywania: indeks jest spoza zakresu [5] o długości 5 [zamknięty]

0

Pytanie

Napisałem ten 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

Znam powód, dla którego się zgłasza błąd, jest to związane z warunkiem w pętli for i<=10 i jeśli usunę = to nie daje mi błąd.

Ale powiedzmy, że chcę zakodować go w taki sposób, aby nie dostawał błędów, jeśli nadal będę używać i<=10. Jak można to zrobić?

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

Najlepsza odpowiedź

1

Chcę zakodować go w taki sposób, aby nie otrzymałem błąd, jeśli nadal będę używać "jestem Jak to można zrobić?

Można bezpiecznie zrobić taki cykl

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

Czy 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

Możesz albo zmienić swój stan, albo i <= 10 Dla

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

czy można zwiększyć długość linii, począwszy od x := "Hello" Dla

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

W innych językach

Ta strona jest w innych językach

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