go语言学习日记2020-2-9

新型冠状病毒施虐,国家号召大家都呆在家中为国家做贡献。工作上的事情基本已经完成,有了一段完整的时间,决定看一下go语言。早就听说go语言很牛逼,包含了解释型语言的写的快和编译型语言运行快的优点。go语言是由google公司的几位大神搞的,都是几个IT界历史重量级的人物。

(1)go语言还是一种编译型的语言,被称为21世纪的c语言。

(2)go语言是一种强类型的语言,使用变量前必须先定义。var 变量名 变量类型;也可以采用初始赋值的方式由计算机根据右边的值自动判断类型。变量名:=变量值。

(3)go语言所有的程序都必须在package下,必须定义main包和main函数。main包是程序的入口包,main函数是入口包的入口函数。

(4)go语言的包管理工具,godep可以对包进行管理类似于javascript的npm,会生成一个package.json用来记录程序所有使用的包。

(5)go语言编译生成的可执行文件可以在不同的系统上进行执行。省去了环境配置部署的难题。

(6)go语言保留了指针,可以读取指针(通过在变量前添加&),可以读取指针指向的值(通过*加指针变量);但是不可以操作指针。指针可以大大加快块文件读取的速度。

(7)go语言默认支持Unicod编码,不需要像python一样要进行转码。

(8)go语言可以自行进行内存的管理。不需要人工干预,大概率会把函数中的变量放在栈中加快读写,把不确定大小的变量放在堆中,防止溢出。

(9)go语言带有垃圾回收机制。

(10)go语言的数据类型有整数(int,int32,int16,int64),无符号整数(uint,uint16,uint21),浮点数(float32,float64)、字符串(string),bool值等组成。

(11)go语言有24个关键字,还有一些保留关键字。

(12)字符串转换strconv包中的formatInt,formatFloat,formatBool可以将其他类型函数转换为字符串,parseInt,parseFloat,parseBool可以将字符串转换为其他类型,第一个返回值是转换后的结果,第二个返回值为如果出错将返回。

(13)go语言的Bool类型与0,1空字符串等是不等效的,因此不能用0,1代替bool值。

(14)go语言的for循环去掉了()保留了{},{必须紧跟第一行末尾,否则会编译出错。

(16)go语言的函数用func来定义,func 函数名(参数1,参数类型)返回值类型{,有返回值类型的必须用return来返回值。

(17)go语言使用import引入包,引入多个包用()括起来

(18)go语言使用const来定义常量,常量开头如果小写表示该常量仅能被所在包引用,如果为大写说明可以被其他外部包引用。

(19)go语言使用驼峰标识来命名变量。

(20)go语言的运算优先级与其他语言无差异,()享有更高的优先级

(21)逻辑运算符&& || !

(22)go语言有匿名变量,_下划线好像javascript中有名的lodash。凡是赋予匿名变量的值在编译时都会被丢掉。

(23)go语言可以通过iota来构造枚举类型。

(24)go语言注释有单行注释和多行注释,在包文件开头的注释可以被提取自动生成文档。

 

posted @ 2020-02-09 11:15  tutu_python  阅读(65)  评论(0)    收藏  举报