Go语言程序设计PPT1第4章 数组切片与映射.pptxVIP

  • 1
  • 0
  • 约2.56千字
  • 约 86页
  • 2023-11-20 发布于广东
  • 举报

Go语言程序设计PPT1第4章 数组切片与映射.pptx

学习目标;4.1 值和引用;4.1.1 值传递;4.1.2 引用传递;4.1.2 引用传递;4.1.2 引用传递;4.2 数组;4.2.1 数组声明;4.2.1 数组声明;4.2.2 数组初始化;4.2.2 数组初始化;数组元素用数组名加方括号索引的方式来访问,元素的索引值即下标从0开始,最大值为数组长度减1。第一个元素为array[0],最后一个元素为array[len(array)-1]。数组的长度可以用系统内置函数len(array)获得。;;4.2.3 数组赋值; array[0] = true // int型数组不能赋布尔型值 array[NUM] = 3.5 // int型数组不能赋浮点型值 array[3] = adadasd // int型数组不能赋字符串型值 数组元素变量也可以采用平行赋值的方式,如下所示: array[0],array[1],array[2] = 14,21,36 数组也可以使用花括号全部或部分赋值,如下所示: array = [5]int{12,35,1} 没被赋值的元素保持零值。;4.2.3 数组赋值;4.2.3 数组赋值;4.2.4 数组类型;4.2.4 数组类型;4.2.4 数组类型;4.2.4 数组类型;4.2.4 数组类型;4.2.4 数组类型;4.2.5 数组的传递; 反过来,一个n维数组可以把其某一行看成是一个一维数组,这样就变成了n-1维数组,以此类推,可以不断降维,最后变成一维数组来处理。因此,一维数组的处理规则同样适应于多维数组。 线性代数中的矩阵就可以用一个二维数组来描述,因此,一个m * n的矩阵可以转换成一个m行n列的二维数组,实际编程中二维数组是最常用的。一个二维数组可用下述方式声明: var array [row][column] int;4.2.6 多维数组;4.2.6 多维数组;4.3 切片;4.3.1 切片的定义;4.3.1 切片的定义;4.3.1 切片的定义;4.3.1 切片的定义;4.3.2 切片的检索及赋值;4.3.3 切片的操作;4.3.3 切片的操作;4.3.3 切片的操作;4.3.3 切片的操作;func main() { s := []rune{A, B, C, D, E, F, G, H} u := s[:4] v := s[3:6] w := s[5:] // 只修改w切片,其它切片保持不变 w[0] = X fmt.Printf(u= %c, v= %c, w= %c\n, u, v, w) } 运行结果: u= [A B C D], v= [D E X], w= [X G H]; 上述对切片的操作也可以用于数组,一般建议是先将数组转换成切片,如下所示: var array = [6]int{1,2,3,4,5,6} s := array[:] 这样就将数组array转换???了切片s,以后就可以对s进行切片操作了。不转换直接在数组array上作切片操作也是允许的,切出来的子切片类型就变成切片而不再是数组了。;4.3.4 切片的遍历;4.3.4 切片的遍历;4.3.4 切片的遍历;4.3.5 切片的扩容;func main() { s := make([]int, 3, 4) s[0] = 1 s[1] = 2 s[2] = 3 fmt.Printf(s=%d, len(s)=%d, cap(s)=%d\n, s, len(s), cap(s)) s = append(s, 10) fmt.Printf(s=%d, len(s)=%d, cap(s)=%d\n, s, len(s), cap(s)) s = append(s, 20) fmt.Printf(s=%d, len(s)=%d, cap(s)=%d\n, s, len(s), cap(s)) };4.3.5 切片的扩容;4.3.5 切片的扩容;4.3.5 切片的扩容;4.3.6 切片的复制;4.3.6 切片的复制;4.3.6 切片的复制;4.3.7 切片的插入与删除;4.3.7 切片的插入与删除;4.3.7 切片的插入与删除;package main import ( fmt ) func main() { s1 := []int{1, 2, 3, 4} s2 := []int{7, 8, 9} s1 = append(s1,

文档评论(0)

1亿VIP精品文档

相关文档