數(shù)組上創(chuàng)建切片
package main
import "fmt"
func main() {
? /*
? sliece := arr[start:end]
? ? 切片中的數(shù)據(jù):[start,end]
? ? arr[:end],從頭到end
? ? arr[start:]從start到末尾
? 從已有的數(shù)組上狡门,直接創(chuàng)建切片诗芜,該切片的底層數(shù)組就是當前的數(shù)組楼镐。
? ? 長度是從start到end切割的數(shù)據(jù)滚澜。
? ? 但是容量從start到數(shù)組的末尾。
? */
? a :=[10]int{1,2,3,4,5,6,7,8,9,10}
? fmt.Println("_____________1.已有數(shù)組直接創(chuàng)建切片__________________")
? s1 :=a[:5]
? s2 :=a[3:8]
? s3 :=a[5:]
? s4 :=a[:]
? fmt.Println("a:",a)
? fmt.Println("s1:",s1)
? fmt.Println("s1:",s2)
? fmt.Println("s1:",s3)
? fmt.Println("s1:",s4)
? fmt.Printf("%p\n",&a)
? fmt.Printf("%p\n",s1)
? fmt.Println("____________2.長度和容量_____________")
? fmt.Printf("s1? len:%d,cap:%d\n",len(s1),cap(s1)) //s1? len:5,cap:10
? fmt.Printf("s2? len:%d,cap:%d\n",len(s2),cap(s2)) //s2? len:5,cap:7
? fmt.Printf("s3? len:%d,cap:%d\n",len(s3),cap(s3)) //s3? len:5,cap:5
? fmt.Printf("s4? len:%d,cap:%d\n",len(s4),cap(s4)) //s4? len:10,cap:10
? fmt.Println("____________3.更改數(shù)組的內(nèi)容_____________")
? a[4] = 100
? fmt.Println(a)
? fmt.Println(s1)
? fmt.Println(s2)
? fmt.Println(s3)
? fmt.Println(s4)
? fmt.Println("____________4.更改切片內(nèi)容_____________")
? s2[2] = 200
? fmt.Println(a)
? fmt.Println(s1)
? fmt.Println(s2)
? fmt.Println(s3)
? fmt.Println("____________4.更改切片內(nèi)容_____________")
? s1 = append(s1,1,1,1,1)
? fmt.Println(a)
? fmt.Println(s1)
? fmt.Println(s2)
? fmt.Println(s3)
? fmt.Println("____________5.添加元素切片擴容_____________")
? fmt.Println(len(s1),cap(s1))
? s1 = append(s1,2,2,2,2,2)
? fmt.Println(a)
? fmt.Println(s1)
? fmt.Println(s2)
? fmt.Println(s3)
? fmt.Println(len(s1),cap(s1))
? fmt.Printf("%p\n",s1)
? fmt.Printf("%p\n",&a)
}
運行輸出:
_____________1.已有數(shù)組直接創(chuàng)建切片__________________
a: [1 2 3 4 5 6 7 8 9 10]
s1: [1 2 3 4 5]
s1: [4 5 6 7 8]
s1: [6 7 8 9 10]
s1: [1 2 3 4 5 6 7 8 9 10]
0xc00001a280
0xc00001a280
____________2.長度和容量_____________
s1? len:5,cap:10
s2? len:5,cap:7
s3? len:5,cap:5
s4? len:10,cap:10
____________3.更改數(shù)組的內(nèi)容_____________
[1 2 3 4 100 6 7 8 9 10]
[1 2 3 4 100]
[4 100 6 7 8]
[6 7 8 9 10]
[1 2 3 4 100 6 7 8 9 10]
____________4.更改切片內(nèi)容_____________
[1 2 3 4 100 200 7 8 9 10]
[1 2 3 4 100]
[4 100 200 7 8]
[200 7 8 9 10]
____________4.更改切片內(nèi)容_____________
[1 2 3 4 100 1 1 1 1 10]
[1 2 3 4 100 1 1 1 1]
[4 100 1 1 1]
[1 1 1 1 10]
____________5.添加元素切片擴容_____________
9 10
[1 2 3 4 100 1 1 1 1 10]
[1 2 3 4 100 1 1 1 1 2 2 2 2 2]
[4 100 1 1 1]
[1 1 1 1 10]
14 20
0xc0000160a0
0xc00001a280
Process finished with exit code 0
讀完點個贊,給我的堅持更新注入新的活力。
2022.05.17日更 71/365 天
公眾號:3天時間
往期同類文章:
GO學習 slice
GO學習 多維數(shù)組
GO學習 Array類型和排序
GO學習 Array