有人可以解释为什么我在转换相同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])
}
哪个回报
len 6
len 2
cap 2
panic: runtime error: slice bounds out of range [:3] with capacity 2
但是当评论fmt.Println(runes[:3])
它返回时:
len 6
len 2
cap 32
看看 [] 符文容量是如何从 2 变为 32 的。如何?为什么 ?
如果你想测试 =>去游乐场