make

// 长度和容量都是5个元素
array := make([]string,5)

for i:=0;i<len(array);i++ {
array[i] = strconv.Itoa(i) // int to string
fmt.Printf("%d=%s \n",i,array[i])
}

fmt.Println()
//长度为3个 容量为5个
array1 := make([]string,3,5)
for i:=0;i<len(array1);i++ { //可以访问3个元素
array1[i] = strconv.Itoa(i) // int to string
fmt.Printf("%d=%s \n",i,array1[i])
}

打印

0=0 
1=1
2=2
3=3
4=4

0=0
1=1
2=2

slice

[start:end]

slice := [] int {1,2,3,4,5,6,7,8,9}

slice1 := slice[2:5]
fmt.Printf("\n")
fmt.Printf("slice1.length=%d \n",len(slice1))
for i:=0;i<len(slice1);i++ {
fmt.Printf("%d=%d \n",i,slice1[i])
}

输出

slice1.length=3 
0=3
1=4
2=5

[i:j:k]


长度为j-i , 容量为k-1


append

slice := [] int {1,2,3,4,5,6,7,8,9}
fmt.Printf("start myappend =============================\n")
// 3,4,5
slice1 := slice[2:5]
fmt.Printf("\n")
fmt.Printf("slice1.length=%d \n",len(slice1))
for i:=0;i<len(slice1);i++ {
fmt.Printf("%d=%d \n",i,slice1[i])
}
// 6 变成10 7变成了11
slice1 = append(slice1,10,11)
fmt.Printf("\n")

fmt.Printf("slice.length=%d \n",len(slice))
for i:=0;i<len(slice);i++ {
fmt.Printf("%d=%d \n",i,slice[i])
}
fmt.Printf("\n")
fmt.Printf("slice1.length=%d \n",len(slice1))
for i:=0;i<len(slice1);i++ {
fmt.Printf("%d=%d \n",i,slice1[i])
}

输出

start myappend =============================

slice1.length=3
0=3
1=4
2=5

slice.length=9
0=1
1=2
2=3
3=4
4=5
5=10
6=11
7=8
8=9

slice1.length=5
0=3
1=4
2=5
3=10
4=11

注意


6 变成10 7变成了11