go语言——数组和切片
go语言——数组和切片
数组
声明和初始化
var variable_name [size] variable_type
//默认值为0
eg:
var ss [10]int
var s1 = [5]int{1,2,3,4,5}
遍历
方法一
for i=0; i < len(arry);i++ {
flm.Println(i)
}
方法二
for index, value := range array {
fmt.Println(index,value)
}
多维数组
//存储了三个一维数组,每个一位数组长度为4
var ss [3][4]int
var ss1 [3][4]int{{},{},{}}
切片
声明
var variable_name [] variable_type
//slice会自动扩容,每次扩容len*2
//每次扩容都会重新指向一个新的底层数组
s1 := make([]int,3,8)
si = append(s1,1,2)
//切片原则类似python的列表,但没有步长
//底层数组的修改会影响切片
//切片的修改也会影响底层数组
a := [5]int{1,2,3,4,5}
a1 := a[1:3]
引用传值一般使用make创建
func make(t type,size,InttegerType) type
第一个参数:类型
slice,map,chan
第二个参数:长度
实际存储的元素数量
第三个参数:容量
最多能够存储的元素数量
深浅拷贝
- 浅拷贝拷贝的是地址
- 深拷贝拷贝的是值
s1 := []int{1,2,3}
copy(s2,s1)//将s1中的值拷贝到s2
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY