Go数组和切片
-
数组
Go语言中的数组和python中的列表,php中的关联数组还不一样。python中的列表和php中的关联数组可以任意伸缩,而go中的数组则需要指定数组的长度,一旦长度确定就不允许修改。
// 只能存入三个字符串 var arr1 [3]string = [3]string{"a","b",c} // 语法糖 ... , 在给变量赋值时可以不指定个数,同时也可以打散数据,类似于python中的* 和 ** arr1 := [...]int{1,2,3,4}
-
切片
-
动态数组,可以认为就是python中的列表,由三部分组成 指针,长度,容量。
-
使用make函数可以创建一个切片 make([]int,2,4) -> []int 指针 2切片长度 4切片容量
-
使用字面量也可以创建一个切片 arr := []int{10,20,30,40} 切片的长度和容量都为4
-
创建字符串切片并初始化第100个元素 str_slice := []string(99:"")
-
-
切片限制容量 arr := arr1[2:3:4] 设置的容量不能大于切片的容量,这个案例中切片的容量为5,如果将4换成6 则会报
panic: runtime error: index out of range [2] with length 1
错误,一般设置可用容量和长度一致。-
例子
arr := [...]int{1,2,3,4,5} fmt.Println(arr[0:1])
// 声明一个切片使用make关键字 slice := make(类型,长度,容量(可选)) // 查看容量大小 使用cap函数 cap(slice)
// 切片添加数据 tmp := make([]int,8,10) // 前8位都是0 [0,0,0,0,0,0,0] tmp = append(tmp,1) // 在前8位的基础上追加1 [0,0,0,0,0,0,0,1] tmp = append(tmp,2) // 在前9位的基础上追加2 [0,0,0,0,0,0,0,1,2]
// 使用语法糖 ...解包的作用 arr := []int{2,4,6} arr = append(arr,[]int{7,8,9}...)
-
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端