这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天
印象概述
go给我的印象是原生支持高并发的,是在标准库中集成了非常多的并发包,并且可以以较小的代价来进行线程之间的操作(可能不太准确,仅描述第一印象)
基础语法
01 fmt包
golang的程序需要先引入其所在的packet,一般使用的packet分两种
- main 包
- 其他包
只有使用main包的go文件可以有唯一的main函数作为唯一的入口函数,且只有使用main包的程序文件可以便宜成为可执行文件。
引入其他包使用import 如引入fmt包来进行控制台输出相关的操作
02 变量
Golang和cpp一样是强类型语言,只不过类型后置。
定义变量使用var来声明变量,如var a int = 1
可以显式的直接指定变量类型,也可以不指定而推导得出,不过推导的类型可能是untyped int 而不是 int。
其他的基本数据类型和cpp非常相似
03 循环
与cpp不同,golang将循环简化为了只有一种for循环,而没有while do while 等更多的循环形式,并且简化了cpp中for循环关键字后的括号。golang中的for循环可以直接支持死循环,for i:=1; i<5; i++这种和cpp的for循环非常相似的循环格式,并且其中任意一个部分都可以省略。(三个部分全部省略后极为for系循环的形式)
04 条件语句
和上述03循环部分类似,golang中if-else条件语句中同样省略了if后的括号而使golang语言更见简洁。if语句后的条件可以用;来间隔多个表达式
05 switch语句
去除了cpp的switch语句中每个case都要单独使用break语句来防止程序按顺序执行后续的所有case语句这个冗余的操作,golang中使用switch不用使用break就可以实现程序只走switch后的表达式的值相应的语句,跳过后面的case语句而直接将控制交给switch语句的结尾。
golang中case后可以使用函数等
06 array
如前所述,golang定义变量的方式是强类型后置定义,所以在定义array时是var a [5]int或者为b := [5]int{1, 2, 3, 4, 5}
多重数组也是使用类似的定义方式:var c [3][4]int定义一个二维的数组。
未完待续......