一、切片的截取
- 就和java里面的数组一样,操作数组和数组中的元素
- 代码示例
package main import "fmt" func main() { arr := []int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9} // [low:high:max] 去下标从low开始的元素,len = high - low,cap = max - low s1 := arr[:] // arr[low:len(arr):len(arr)] 不指定容量,就默认为和长度一样 fmt.Println("s1 = ", s1) fmt.Printf("len(s1) = %d, cap(s1) = %d\n", len(s1), cap(s1)) // 操作切片中某个元素,和操作数组中的元素一样 a := arr[5] fmt.Printf("a = %d\n", a) b := arr[2:5:7] fmt.Println("b = ", b) fmt.Printf("len(b) = %d, cap(b) = %d\n", len(b), cap(b)) c := arr[:6] // 常用 下标从0开始取,取6个, fmt.Println("c = ", c) fmt.Printf("len(c) = %d, cap(c) = %d\n", len(c), cap(c)) d := arr[3:] // 从下标3开始取 fmt.Println("d = ", d) fmt.Printf("len(d) = %d, cap(d) = %d\n", len(d), cap(d)) }
二、切片和底层数组之间的关系
操作切片中的元素,会影响底层数组
package main import "fmt" func main() { arr := []int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9} // 切片1 s1 := arr[2:5] // 从下标2开始取,取三个元素 s1[1] = 111 fmt.Println("s1 = ", s1) // [2 111 4] fmt.Println("arr = ", arr) // [0 1 2 111 4 5 6 7 8 9] // 切片2 s2 := s1[2:7] // 从下标2开始取,取三个元素 s2[1] = 222 fmt.Println("s2 = ", s2) //[4 222 6 7 8] fmt.Println("arr = ", arr) //[0 1 2 111 4 222 6 7 8 9] }
go语言 切片的截取和底层数组关系
猜你喜欢
转载自blog.csdn.net/m0_38068812/article/details/85220619
今日推荐
周排行