Pânico: erro de tempo de execução: o índice fora do intervalo [5] com comprimento 5 [fechado]

0

Pergunta

Eu escrevi este programa,

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

Eu sei a razão pela qual ele está dando o erro, é devido a condição no loop for i<=10 e se eu remover o = não vai me dar o erro.

Mas vamos dizer que eu quero o código de tal forma que eu não obter erros se eu ainda uso i<=10. Como isso pode ser feito?

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

Melhor resposta

1

Eu quero o código de tal forma que eu não me erro se eu ainda uso "i<=10". Como isso pode ser feito?

Você pode seguramente loop como este,

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

Ou isso,

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

Você pode alterar a sua condição, a partir de i <= 10 para

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

ou você pode aumentar seu comprimento de seqüência de caracteres, a partir de x := "Hello" para

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

Em outros idiomas

Esta página está em outros idiomas

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