企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## 一、定义切片 ~~~ package main import "fmt" func main() { // 切片和数组不同的是,数组是指定长度的,切片是不指定长度的 // 空切片 var s1 []int fmt.Println(s1) s2 := []int{} fmt.Println(s2) // 使用make来申明切片 // 这里的0,0表示的是长度和容量都是0 var s3 =make([]int,0,0) fmt.Println(s3) s4 := []int{1,2,3,4} fmt.Println(s4) } ~~~ ## 二、操作切片 append():向切片尾部添加数据 copy() #### 实例1 ~~~ package main import "fmt" func main() { // 向空切片添加元素 var s1 []int s1 = append(s1,0) s1 = append(s1,1,2,3) s1 = append(s1,4) s1 = append(s1,5,6,7,8,9) fmt.Println(s1) //创建指定大小的切片 s2 := make([]int,5) s2 = append(s2,6) fmt.Println(s2) // 创建并初始化切片 s3 := []int{1,2,3} s3 = append(s3,4,5,6) fmt.Println(s3) } ~~~ 运行结果为: [0 1 2 3 4 5 6 7 8 9] [0 0 0 0 0 6] [1 2 3 4 5 6] ## 三、实例 #### 实例1 ~~~ package main import "fmt" func main() { // 定义一个数组 arr := [...]int{1,2,3,4,5,6,7,8,9} //取切片 //这里的赋值可以理解为对原数组的一个映射,并没有创建和copy出来一个新的切片 s1 :=arr[2:] //修改值 s1[0] = 100 fmt.Println(s1) fmt.Println(arr) } ~~~ 结果: [100 4 5 6 7 8 9] [1 2 100 4 5 6 7 8 9] #### 实例2 ~~~ package main import "fmt" func main() { // 定义一个数组 arr := [...]int{1,2,3,4,5,6,7,8,9} //取切片 //这里的赋值可以理解为对原数组的一个映射,并没有创建和copy出来一个新的切片 s1 :=arr[2:] //修改值 s1[0] = 100 //fmt.Println(s1) //fmt.Println(arr) s2 := arr[2:6] fmt.Println(s2) // go语言没有取到的位置,可以向后延伸,不可向前延伸 s3 := s2[3:5] fmt.Println(s3) } ~~~ 运行结果: [100 4 5 6] [6 7]