文件名称:多维数组的映射关系-gjb 5880-2006 软件配置管理
文件大小:5.91MB
文件格式:PDF
更新时间:2024-06-27 11:07:27
Go Web 编程
图2.2 多维数组的映射关系 sliceslice 在很多应用场景中,数组并不能满足我们的需求。在初始定义数组时,我们并不知道需要多大的数组,因此我们就需 要“动态数组”。在Go里面这种数据结构叫slice slice并不是真正意义上的动态数组,而是一个引用类型。slice总是指向一个底层array,slice的声明也可以像 array一样,只是不需要长度。 // 和声明array一样,只是少了长度 var fslice []int 接下来我们可以声明一个slice,并初始化数据,如下所示: slice := []byte {'a', 'b', 'c', 'd'} slice可以从一个数组或一个已经存在的slice中再次声明。slice通过array[i:j]来获取,其中i是数组的开始 位置,j是结束位置,但不包含array[j],它的长度是j-i。 // 声明一个含有10个元素元素类型为byte的数组 var ar = [10]byte {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'} // 声明两个含有byte的slice var a, b []byte // a指向数组的第3个元素开始,并到第五个元素结束, a = ar[2:5] //现在a含有的元素: ar[2]、ar[3]和ar[4] // b是数组ar的另一个slice b = ar[3:5] // b的元素是:ar[3]和ar[4] 注意slice和数组在声明时的区别:声明数组时,方括号内写明了数组的长度或使用...自动计算长度,而声明 slice时,方括号内没有任何字符。 它们的数据结构如下所示 47