我很难学习如何在字符串中循环Golang来做一些事情(比包含元音的单词分开)。
Golang
我写了这个代码片段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
我在这个论坛上搜索,有人说这是由于数组的长度引起的,但事实并非如此。我不知道如何解决这个问题。有人可以建议什么吗?谢谢
问题在于您正在创建一个length为的切片0,但最大容量为4,但是同时您试图将一个值分配给所创建切片的第零个索引,该索引通常为空。这就是为什么您收到的原因index out of range error。
0
4
index out of range error
result := make([]string, 0, 4) fmt.Println(len(result)) //panic: runtime error: index out of range
您可以使用以下方法更改此代码:
result := make([]string, 4)
这意味着容量将与切片长度相同。
fmt.Println(cap(result)) // 4 fmt.Println(len(result)) // 4
您可以在此处阅读有关 数组 , 切片 和 映射的 信息:https : //blog.golang.org/go-slices-usage-and- internals