package main import "fmt" func main() { var a = [3]int{1,2,3} //var b = [2]int{1,2} //var c[3]int = [3]int{1,2,3} //d :=[4]int{1,2,3,4} //e :=[6]int{} fmt.Println(a,a[0:2]) //切片从数组或者切片生成新的切片,顾头不顾尾 //slice[start:end] /* 特性:1、取出元素到数量为 结束到位置-开始到的位置 2、取出元素不包括结束位置的索引(顾头不顾尾) 3、取出最后一个的元素使用slice(len(slice)) 4、当缺开始当位置当时候,则表示从开头到结束位置 5、当没结束位置当话,则表示从开始位置到末尾 6、两者同时缺省,则与本身相等 7、两者同为0,则等效于空切片,一般用于切片复位。 */ var highRiseBuilding[30]int for i:=0;i<30 ;i++ { highRiseBuilding[i] = i+1 } //下标10-15 fmt.Println(highRiseBuilding[10:15]) //中间到末尾 fmt.Println(highRiseBuilding[20:]) //开始到第二个 fmt.Println(highRiseBuilding[:2]) g:=[]int{1,2,3} fmt.Println(g[:])//全部复制 fmt.Println(g[0:0])//清空 //直接声明新的切片 var na []int//默认nil var str []string//默认nil //声明空切片 var numlistEmpty = []int{} //输出3个切片 fmt.Println(str,na,numlistEmpty) //输出3个切片大小 fmt.Println(len(na),len(str),len(numlistEmpty)) fmt.Println(na==nil)//true fmt.Println(str==nil)//true fmt.Println(numlistEmpty==nil)//false //使用make()函数构造切片(动态构造一个切片) //make([]type,size,cap) //type类型 size分配元素个数,cap预分配的元素个数 ac :=make([]int,2) ab :=make([]int,2,10) fmt.Println(ab,ac) fmt.Println(len(ab),len(ac)) //预分配10个使用2个 }
golang学习之路-19切片slice的使用
最新推荐文章于 2022-04-12 16:21:22 发布