我很难学习如何在 Go 中循环遍历字符串来做一些事情(具体来说,分隔单词而不是包含元音)。
我写了这个代码片段:https: //play.golang.org/p/zgDtOyq6qf 。
这是我在运行时遇到的错误:
panic: runtime error: index out of range
goroutine 1 [running]:
panic(0x1045a0, 0x1040a010)
/usr/local/go/src/runtime/panic.go:500 +0x720
main.myFunc(0x114130, 0x4, 0x0, 0x0, 0x0, 0x3ba3)
/tmp/sandbox960520145/main.go:19 +0x1a0
main.main()
/tmp/sandbox960520145/main.go:10 +0x40
我在这个论坛里搜了一下,有人说是数组长度的原因,这里不是。我不知道如何解决这个问题。有人可以提出建议吗?
原文由 jiji 发布,翻译遵循 CC BY-SA 4.0 许可协议
问题是您正在创建长度为
0
的切片,但最大容量为4
,但同时您正在尝试为第零索引分配一个值创建的切片,通常为空。这就是您收到index out of range error
的原因。您可以更改此代码:
这意味着容量将与切片长度相同。
您可以在此处阅读有关 _数组_、 切片 和 映射 的信息: https ://blog.golang.org/go-slices-usage-and-internals