Panik: çalışma zamanı hatası: dizin aralık dışı [5] uzunluğu 5 [kapalı]

0

Soru

Bu program yazdım ,

package main

import "fmt"

func main() {
    x := "Hello"

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

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

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

Hatayı vermesinin nedenini biliyorum, bunun nedeni for döngüsündeki durumdan kaynaklanıyor i<=10 ve eğer kaldırırsam = bu bana hata vermez.

Ama diyelim ki hala kullanırsam hata alamayacağım şekilde kodlamak istiyorum i<=10. Nasıl yapılabilir?

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

En iyi cevabı

1

Hala kullanırsam hata almayacağım şekilde kodlamak istiyorum "ben Nasıl yapılabilir?

Bu şekilde güvenli bir şekilde döngü yapabilirsiniz,

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 / oynat / p / 2NknjS3Ql6k

Ya bu,

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 / oynat / p / 0eKTcxXıpwB

2021-11-24 06:11:58
0

Ya da durumu değiştirmek yapabilirsiniz i <= 10 -e doğru

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

veya dize uzunluğunuzu artırabilirsiniz. x := "Hello" -e doğru

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

Diğer dillerde

Bu sayfa diğer dillerde

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