💓博主CSDN主页:杭电码农-NEO💓
⏩专栏分类:Go语言专栏⏪
🚚代码仓库:NEO的学习日记🚚
🌹关注我🫵带你学习更多Go语言知识
🔝🔝
GO快速上手
- 1. 前言
- 2. 数组详解
- 3. 切片详解
- 4. 映射详解
- 5. GO语言的错误处理
- 6. 总结
1. 前言
在了解过GO的控制语句和函数后,按照学习语言的逻辑也理应进入到容器的学习,GO语言的容易比较特殊,它不像C++一样有专门的STL库,类型也没有其他语言那么多.但是都非常的实用!
本章重点:
本篇文章会讲解GO语言中数组的使用,以及GO语言中的切片是什么,映射是什么?它们应该如何使用?最后会讲解GO语言中捕捉错误的方式.文章重在实践,底层原理不涉及
2. 数组详解
如何定义数组:
var arr [3]int //分别对应 arr->数组名, [3]->数组的大小 int->数组中元素类型 arr[0] = 10 arr[1] = 20 arr[2] = 30
如何遍历数组: 两种方法
var arr [3]int arr[0] = 10 arr[1] = 20 arr[2] = 30 //普通for循环 for i:=0;i fmt.Println(arr[i]) } //for - range遍历 for k,v := range arr{ fmt.Printf("下标为: %d,值为: %d",k,v) } 3,6,9} //方法二 var arr = [3]int{2,4,6} //方法三,不定长,当初始化为1.3.5.7.9后,长度自动变成5 var arr = [...]int{1,3,5,7,9} //方法四,指定下标的值,下标2的值为66,下标3的值为77,以此类推 var arr = [...]int{2:66,3:77,1:11,0:55} {1,4,7} , {2,5,8} } for k,v := range arr{ for key,value := range v{ fmt.Println(value) } } 1,2,3,4,5,6} //定义一个切片,名字是slice,是动态变化的数组 var slice1 []int = arr[1:4] //切片的索引从1开始到4结束,但不包含下标4,也就是说切片的内容为2.3.4 var slice2 := arr[2:5] 2,4,6,8} 3,6,9} //使用append不会影响原来的数组,会创建一份新的空间 slice2 := append(slice1,12,15}//一次性可以追加多个内容,甚至追加多个切片 fmt.Println(slice2) slice2 := append(slice2,18,21)//可自己追加自己 return append(slice[:index], slice[index+1:]...) } func main() { slice := []int{1, 2, 3, 4, 5} index := 2 newSlice := removeElement(slice, index) fmt.Println(newSlice) // 输出: [1 2 4 5] } 2001 : "张三" 2002 : "李四" 2003 : "王五" } fmt.Printf("key为: %d, value为: %d",k,v) } num1 := 10 num2 := 0 result := num1/num2 fmt.Println(result) } func main(){ test() } //利用defer+recover来捕获错误 defer func(){ //调用recover内置函数,可以捕捉错误 err := recover() //如果没有错误,会返回零值,也就是nil if err !=nil{ fmt.Println("错误已经捕获,err是: ",err) } } num1 := 10 num2 := 0 result := num1/num2 fmt.Println(result) } func main(){ test() } num1 := 10 num2 := 0 if num2==0{ //抛出自定义错误 return errors.New("除数不能为0哦~~") }else{//如果除数不为0再正常执行代码 result := num1/num2 fmt.Println(result) //没有错误,就返回nil return nil } }