有人可以解释为什么我转换相同,当有不同容量string的[]rune?
看看这个代码
package main
import (
"fmt"
)
func main() {
input := "??"
runes := []rune(input)
fmt.Printf("len %d\n", len(input))
fmt.Printf("len %d\n", len(runes))
fmt.Printf("cap %d\n", cap(runes))
fmt.Println(runes[:3])
}
Run Code Online (Sandbox Code Playgroud)
哪个返回
len 6
len 2
cap 2
panic: runtime error: slice bounds out of range [:3] with capacity 2
Run Code Online (Sandbox Code Playgroud)
但是当评论fmt.Println(runes[:3])它返回时:
len 6
len 2
cap 32
Run Code Online (Sandbox Code Playgroud)
看看 [] 符文容量如何从 2 变为 32。如何?为什么 ?
如果你想测试 =>去游乐场