在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
GO中的数组切片可以看做是功能更强大的数组,在append数据时,可以自动调整内存大小以适应数据实际大小,有些类似于C#中的List<T>。 GO 中数组切片的“容量”与实际储存的大小可以不同,比如一个杯子容量是500ml,实际只装了200ml的水。 数组切片的基本用法:
fmt.Println("数组切片可以看做是一种比普通数组更强大的数组") //数组切片 fmt.Println("数组切片:") fmt.Println("首先创建数组:") var aryVal []int = []int{1, 2, 3, 4, 5, 6, 7, 8} //fmt.Println("Arry = ", aryVal) //根据数组创建数组切片 fmt.Println("根据数组创建数组切片[从 0 ~ 2]:") var aryClince []int = aryVal[:3] fmt.Println("aryClince = ", aryClince) var aryClince2 []int = aryVal[3:len(aryVal)] fmt.Println(aryClince2) //直接通过make函数床架数组切片 fmt.Println("直接通过make函数床架数组切片:") var slicel []int = make([]int, 6) fmt.Println("函数make创建的数组切片默认将元素初始化为对应类型的默认值:") fmt.Println("slicel = ", slicel) for i, _ := range slicel { slicel[i] = i + 1 } fmt.Println("对切片赋值后:") fmt.Println(slicel) fmt.Println("切片的储存能力和当前储存量可以不同") var slicel2 []int = make([]int, 12, 20) for i := 0; i <= 4; i++ { slicel2[i] = i + 1 } fmt.Println("slicel2 = ", slicel2) fmt.Println("cap of slicel2(切片预留的储存能力) = ", cap(slicel2)) fmt.Println("length of slicel2(切片当前储存量) = ", len(slicel2)) //切片后动态追加数据 使用append函数追加数据 var slicel4 []int = make([]int, 5, 15) for i := 0; i < len(slicel4); i++ { slicel4[i] = i + 1 } fmt.Println("slicel4 = ", slicel4) // slicel4 = append(slicel4, 9, 0, 1, 2, 3) fmt.Println("Append datas :", slicel4) temslicel := []int{22, 3, 44, 55, 66, 77, 88} slicel4 = append(slicel4, temslicel...) //注:后面 ... 表示将切片打散为单个元素后进行插入 fmt.Println("Appended slicel:", slicel4) |
请发表评论