我想弄清楚切片大小调整是如何工作的,我有以下示例:
package main
import (
"fmt"
)
func main() {
s := []byte{'A', 'W', 'T', 'Q', 'X'}
b := s[2:4]
fmt.Println(s, len(s), cap(s))
fmt.Println(string(b), len(b), cap(b))
b[1] = 'H'
b[2] = 'V'
fmt.Println(string(b))
}
编译器抱怨:
panic: runtime error: index out of range
b
的容量为3
,为什么我不能指定
b[2] = 'V'