go语言学习之路三:切片
前面讲了变量的有关知识,这里对于其他的数据类型就不多作介绍,(和C差不多),因此重点来讨论下切片。 一、切片是引用类型,这里要稍微介绍两个概念:值类型,构造类型和引用类型 1、值类型:是一种由类型的实际值表示的数据类型。如果向一个变量分配值类型,则该变量被附以全新的值的副本,go语言的值类型包括布尔型,整型,浮点型,复数型。 2、构造类型:和c中差不多,包括数组,结构体和字符串 3、引用类型:由类型的实际值引用表示的数据类型。如果为某个变量分配一个引用类型,则该变量将应用原始值,不创建任何副本。go语言引用类型包括切片、字典和通道。 切片通常用来实现变长数组,原型定义如下: struct Slice { byte *array; unit32 len; unit32 cap; }; 它抽象为以下三个部分: 指向被引用的底层数组的指针;切片中元素的个数;切片分配的存储空间。 二、切片的创建和声明 1、基于底层数组创建切片 var array1=[10]int{1,2,3,4,5,6,7,8,9,10} var slice[]int slice1=array1[:5] slice2=array1[5:] slice3=array1[:] slice4=array1 slice5=array1[0:len(array1)