前言
本文主要
Go入门
go语言特点
go语言具有高性能,高并发的特点,语法简单,具有丰富的标准库和完善的工具链,并且能实现静态链接和快速编译,能跨windows、linux等多个平台,还具有垃圾回收功能,提高资源利用率。
国内字节、腾讯、b站等和国外Google和Facebook等公司都开始使用go语言。
Go基础语法
一般入门一种新语言都是从“Hello world"开始,我们也不例外:
其中,3和4行引入的包Package fmt用类似于C语言的printf和scanf的函数实现了格式化的I/O。
go语言特点
1.变量
不同于C语言,命名变量时需要先名称后数据类型,赋值需要:=
2.条件语句
不同于C语言,if后没有小括号,之后的大括号不能省略。
3.循环结构
不同于C语言,循环结构没有while等,只有for结构,且fou后没有小括号,之后的大括号不能省略。
4.case结构
变量输入比较宽松,如下面的结构。
在运行过程中,一旦符合了其中一种条件,将不会遍历下面的case,这不同于C
语言。
5.切片
采用make构造,比较常用,相应的数组类似c语言,就不介绍了。
6.map
具有key和value,一一对应。ok是遍历整个map进行查找,进而返回布尔值
7.range
该代码中,选择一定范围进行遍历,输出是key和value对应结构。
此处应该是a A;b B
的结果。
8.函数
从代码13和22行中可见,函数引用中map需要先数据类型再具体数值。
9.指针
相比于C语言,两者用法相似。大家可能觉得指针学习比较难,但是只要明白你是需要借用变量还是更改变量值,就能明白需不需要指针。
例如,在引用函数add2后n值并没有变,是因为变化的n值没有传出来,n还延用之前值。
而在引用函数add2ptr后变化后的n地址被取出来,n值发生变化。
10.结构体
代码中有多种结构体创建方法,并且还可以结合指针进行结构体修改。
11.错误
有错误输入时,及时反馈出"not found"
12.字符串
HasPrefix是判断a这个字符串中是否有后者(这里是“he”)的前缀,相应HasSuffix则是判断是否有后者(这里是“llo”)的后缀。
其中,在UTF-8 编码中,一个英文字母为一个字节,一个中文为三个字节。因此最后一行长度为6。
13.格式
go语言中,%v可以表示数字、字符等,比c语言更加简洁。%+v、%#v是显示更多参数性质。
14.json
代码第10行中可以单独重新定义变量名称,Marshal递归遍历值v,第16行和第30行是对应相反操作。
15.时间
可以得到现在时间,还可取时间戳。
其中,进行时间格式修改时,只能采用"2006-01-02 15:04:05"
作为基准。
16.时间
strconv包实现了基本数据类型与其字符串表示的转换。第二个中,10表示该111为十进制数,64则是返回64位的数据
感想
整体感觉go语言在语法上时c语言和python的结合,但少了c语言一些”;“等繁杂操作,比python引用包更容易,综合了两者的优势。