为了账号安全,请及时绑定邮箱和手机立即绑定

恐慌:运行时错误:索引超出范围 [5],长度为 5

恐慌:运行时错误:索引超出范围 [5],长度为 5

Go
长风秋雁 2022-10-17 10:15:24
我写了这个程序,package mainimport "fmt"func main() {     x := "Hello"     for i := 0; i <= 10; i++ {         fmt.Printf("%#U\n", x[i])     }}https://go.dev/play/p/yrMu2hlAvkZpanic: runtime error: index out of range [5] with length 5我知道它给出错误的原因,这是由于 for 循环中的条件,i<=10如果我删除=它不会给我错误。但是,假设我想以这样一种方式对其进行编码,即如果我仍然使用i<=10. 怎么做到呢?
查看完整描述

2 回答

?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

我想以这样的方式编码它,如果我仍然使用“i <= 10”,我不会出错。怎么做到呢?


你可以像这样安全地循环,


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


查看完整回答
反对 回复 2022-10-17
?
互换的青春

TA贡献1797条经验 获得超6个赞

你可以改变你的条件,i <= 10

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

或者你可以增加你的字符串长度,从x := "Hello"

x := "Hello World"


查看完整回答
反对 回复 2022-10-17
  • 2 回答
  • 0 关注
  • 192 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信