索引超出范围 [113],长度为 10

我正在尝试创建一个函数来解密来自 qwerty... -> abcdef .... 目前我有


func Decrypt(strToDecrypt string) string {

 encrStrng := []rune(strings.ToLower(strToDecrypt))

 var decrStrng string = ""


 for _, i := range encrStrng {

   switch encrStrng[i] {

   case 'q'

    decrStrng += "a"

// not gonna type the rest but its q>a, w>b, etc etc.

 }

}

每当我尝试fmt.Println(Decrypt("qwerty"))(在 main 函数 ofc 中)作为测试时,它都会返回 panic: runtime error: index out of range [113] with length 10. 错误出现在 switch 语句中,尤其是。我在这个(特定的)问题上找不到任何东西。


HUX布斯
浏览 95回答 1
1回答

偶然的你

在数组的范围内,第一个值是索引,第二个是元素值。您使用元素值作为索引,以获取元素值。您应该使用索引: for i := range encrStrng {     switch encrStrng[i] {或使用值: for _, i := range encrStrng {     switch i {range包含在Tour of Go中。
打开App,查看更多内容
随时随地看视频慕课网APP