切片完结
This commit is contained in:
46
main.go
46
main.go
@@ -1,21 +1,43 @@
|
||||
package main
|
||||
|
||||
import "fmt"
|
||||
import (
|
||||
"fmt"
|
||||
)
|
||||
|
||||
func main() {
|
||||
//直接创建切片 切片类型 切片长度 切片容量
|
||||
slice := make([]int, 10, 20)
|
||||
fmt.Println(slice)
|
||||
fmt.Println("切片长度:", len(slice))
|
||||
fmt.Println("切片容量:", cap(slice))
|
||||
|
||||
slice[0] = 66
|
||||
slice[1] = 88
|
||||
fmt.Println("slice", slice)
|
||||
|
||||
//定义数组
|
||||
var intarr = [6]int{1, 2, 3, 4, 5, 6}
|
||||
slice := intarr[2:5]
|
||||
fmt.Println("intarr:", intarr)
|
||||
fmt.Println("slice:", slice)
|
||||
fmt.Println("slice len:", len(slice))
|
||||
fmt.Println("slice cap:", cap(slice))
|
||||
//定义切片
|
||||
var slice2 = intarr[1:2]
|
||||
slice2[0] = 66
|
||||
fmt.Println("intarr", intarr)
|
||||
fmt.Println("slice2", slice2)
|
||||
|
||||
fmt.Printf("数组中下标为3位置的地址%p\n", &intarr[3])
|
||||
fmt.Printf("切片中下标为1位置的地址%p\n", &slice[1])
|
||||
i := 10
|
||||
//底层追加元素的时候进行扩容,老数组扩容为新数组
|
||||
slice3 := append(slice2, i)
|
||||
fmt.Println("slice3", slice3)
|
||||
|
||||
//修改切片位置1的数值
|
||||
slice[1] = 16
|
||||
fmt.Println("intarr:", intarr)
|
||||
fmt.Println("slice:", slice)
|
||||
//给自己追加
|
||||
//底层是新数组,不能直接维护,需要通过切片间接维护操作
|
||||
slice3 = append(slice3, 11)
|
||||
fmt.Println("slice3", slice3)
|
||||
//...代表追加是是一个切片
|
||||
slice3 = append(slice3, slice2...)
|
||||
fmt.Println("slice3", slice3)
|
||||
|
||||
//拷贝
|
||||
copy(slice3, slice)
|
||||
fmt.Println("slice3", slice3)
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user