Я новичок на Голанге и слежу за Туром.Приведенный ниже код дает следующие результаты:
a len = 5 cap = 5 [0 0 0 0 0]
b len = 0 cap = 5 []
clen = 2 cap = 5 [0 0]
d len = 3 cap = 3 [0 0 0]
Как может c иметь такой же колпачок, как b, если он вообще не был указан?
package main
import "fmt"
func main() {
a := make([]int, 5)
printSlice("a", a)
b := make([]int, 0, 5)
printSlice("b", b)
c := b[:2]
printSlice("c", c)
d := c[2:5]
printSlice("d", d)
}
func printSlice(s string, x []int) {
fmt.Printf("%s len=%d cap=%d %v\n", s, len(x), cap(x), x)
}