Паника: ошибка во время выполнения: индекс вне диапазона [5] с длиной 5 [закрыт]

0

Вопрос

Я написал эту программу,

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

Я знаю причину, по которой он выдает ошибку, это связано с условием в цикле for i<=10 и если я удалю = это не даст мне ошибки.

Но допустим, я хочу закодировать его таким образом, чтобы я не получал ошибок, если все еще буду использовать i<=10. Как это можно сделать?

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

Лучший ответ

1

Я хочу закодировать его таким образом, чтобы я не получил ошибку, если все еще буду использовать "я Как это можно сделать?

Вы можете безопасно сделать такой цикл,

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

Или это,

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

Вы можете либо изменить свое состояние, либо i <= 10 Для

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

или вы можете увеличить длину строки, начиная с x := "Hello" Для

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

На других языках

Эта страница на других языках

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