这是我参与「第五届青训营」笔记创作活动的第一天。
一:本堂课的重点内容
二:详细知识点如下
1、go语言的特点:
2、开发环境:
vscode:安装go插件就可以进行代码编辑;
golang:收费,官网下载,可以获得30天免费试用时间,对于在校学生可以申请在校期间免费使用;
云平台(代码在线编辑运行);
3、基础语法
1)编译运行代码文件:
2)变量:
第一种:制定变量类型,声明后若不赋值。使用默认值。 int 的默认值是0。
var i int
fmt.Println("i=",i)
第二种:根据自行判定变量类型(类型推导)
var num=10.11
fmt.Println("num=",num)
第三种;省略var,注意:=左侧的变量不应该是已经声明过的,否则会编译错误。
golang的变量如果没有赋初值,编译器会使用默认值,比如int默认值0,string默认值为空串,小数默认为0.
3)加号的使用:
当左右两边都是数值型时,则做加法运算;
当左右两边都是字符串,做做字符串连接。
4)基本数据类型的转换
go在不同类型变量之间赋值时性需要显式转换,也就是说go中数据类型不能自动转换。
注意:go中数据类型可以从表示范围小—>表示范围大,也可以表示范围小——>表示范围大; 被转换的是变量存储的数据,变量本身的数据类型并没有发生改变。
5)指针(值类型)
指针变量存的是一个地址,这个地址指向的空间存的才是值。
6)值类型与引用类型的使用特点
7)if-else
、
跟c/c++的区别在于:if后面的语句不能加小括号,编译的时候会自动加; if中的语句不能写在同一行。
8)循环
golang中没有while和do while循环,只有for循环
9)switch...case
如果没有break,golang中默认在执行完一条语句后会跳出switch,相比其他语言golang中的switch...case功能更加强大,甚至可以取代简单的if-else语句。
10)数组
长度固定,更常用的是切片。
11)切片
切片是引用类型,它的使用与数组类似。
切片的使用
方式一:定义一个切片,然后让切片去引用一个已经创建好的数组。
方式二:通过make来创建切片。基本语法:var 切片名[]type=make([]type,len,[cap]).
方式三:定义一个切片,直接就指定具体数组,使用原理类似于make的方式。
用append内置函数可以对切片进行动态追加。
切片append的本质就是对数组扩容,go底层会创建一下新的数组newArr(安装扩容后大小),
将slice原来包含的元素拷贝到新的数组newArr,slice重新引用到newArr,注意newArr是在底层来维护的,程序员不可见。
12)map
map是key-value数据结构,又称为字段或关联数组。
基本语法:var map变量名 map[keytype]valuetype
key类型通常为int,string
value类型通常是数字,string,map,struct.
三种使用方式如下:
map删除:delete(map,"key"),delete是一个内置函数,如果key存在,就删除key-value,如果key不存在,不操作也不会报错。
三、实践练习例子
篇幅限制,我准备再写一篇笔记,dddd......
四、课后个人总结
对于我来说,本章切片和map容易混淆,map切片有点儿难理解,但是最后还是学明白了,现在懂,过一段儿时间就未必了,头秃。
指针学着简单,用起来难,有好几个地方与c,其他语言有差别,应该多注意细节。
五、引用参考
文章中好多截图来自于课外学习网站,我也是go语言小白,我做了两遍笔记,所以大多都用了截图,也是第一次发笔记,大家轻喷。。。