Go 数组相关操作
一、内置函数
- append :追加元素到slice里,返回修改后的slice
- close :关闭channel
- delete :从map中删除key对应的value
- panic : 用于异常处理,停止常规的goroutine
- recover :用于异常处理,允许程序定义goroutine的panic动作
- imag :返回复数(complex)的实部
- real : 返回复数(complex)的虚部
- make :用来分配内存,主要分配引用类型,返回Type本身(只能应用于slice, map, channel)
- new :分配内存,主要分配值类型,返回指向Type的指针,如int
- cap :容量,容积capacity
- copy :复制slice,返回复制的数目
- len :返回长度
二、GO数组特性
1. 数组:是同一种数据类型的固定长度的序列。
2. 数组定义:var a [len]int,比如:var a [5]int,数组长度必须是常量,且是类型的组成部分。一旦定义,长度不能变。
3. 长度是数组类型的一部分,因此,var a[5] int和var a[10]int是不同的类型。
4. 数组可以通过下标进行访问,下标是从0开始,最后一个元素下标是:len-1
for i := 0; i < len(a); i++ {
}
for index, v := range a {
}
5. 访问越界,如果下标在数组合法范围之外,则触发访问越界,会panic
6. 数组是值类型,赋值和传参会复制整个数组,而不是指针。因此改变副本的值,不会改变本身的值。
7.支持 "=="、"!=" 操作符,因为内存总是被初始化过的。
8.指针数组 [n]*T,数组指针 *[n]T。
三、定义数组与遍历
package main import "fmt" func main() { //数组定义 //第一种 //var <数组名称> [<数组长度>]<数组元素> var arr [2]int arr[0] = 1 arr[1] = 3 // 第二种 var a []int a = make([]int, 4) fmt.Println(a) //第三种 var arrOne = [2]int{3, 4} arrOne1 := [2]int{5, 6} fmt.Println(arrOne) fmt.Println(arrOne1) //第四种不确定长度 var arrFour = [...]int{23, 3, 4, 5, 6} fmt.Println(arrFour) arrFour1 := [...]int{2, 3, 4, 5} fmt.Println(arrFour1) //第五种 定义索引的数值 var arrFiVe = [...]int{0:-1,3:6} fmt.Println(arrFiVe) var arrFiVe1 = [...]int{0:1,3:61} fmt.Println(arrFiVe1) // 数组遍历 for i :=0 ;i<len(arrFiVe);i++{ fmt.Println(arrFiVe[i]) } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了