这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天
在昨天,字节青训营正式启动。昨天的后端从go语言的基础语法出发,逐步深入,最后老师带着我们进行了三个案例代码的编写。作为一个go语言的小白,我将在这里逐步介绍昨日所学。
1. GO语言语法基础
1.1 变量的申明
Golang作为一个强类型语言,在变量申明这一方面,它有着两种申明方式:
- var +变量+(变量类型) =
- 变量:=
值得注意的是,GOlang是支持自动推导类型的,且对于常量而言,无特定类型。
1.2 GO中的for循环
在GOlang中,是没有while以及do-while循环的。而其所使用的for循环也与其他语言有所不同:
- if后面无括号
- 判断语句后必须接大括号且不可写于同一行
1.3 GO中的switch
在GO中switch语句具有很好的兼容性,很多的数据类型都能使用。值得注意的是switch后面不跑其他分支,即相当于case语句后面默认自带break语句。
1.4 GO中的切片(17:00)
对于GO语言中切片可以理解为可变数组,使用make即可进行创建。而在使用append追加元素时,其会返回一个新的切片对象,故我们需要将其赋值给原切片。而在GO中的切片操作与python类同,这里不进行过多的阐述。
1.5 GO中的map(17:51)
对于map,在GO中的构造需要使用make进行:make(map[key]value)。而删除操作使用delete进行。对于利用键获取值则如下所示:
`exmple,ok :=map["exmple_key"]; `
其中,如果exmple_key不存在,则会给exmple赋值为0,而ok则会赋值为false。利用这个属性,我们可以轻易知道键值对存在与否。
1.5 GO中的range遍历(18:29)
对于range遍历,主要会返回两个值:索引,数值(如果是map则返回key,value)
1.6 字符串格式化(24:03)
对于字符串格式化,都可以使用%v,而其他用法如下:
- %+v 可以得到字符串键对
- %#v 得到字符串整个结构
- %.2f 对于浮点数这种写法可以精确到所需位的小数
1.7 更多
对于GO语言的基础语法,还有更多需要注意的,此处不进行一个个的叙述,在如下列表中将体现:
- 函数(19:10)可返回多个值
- 指针(19:37)操作有限,指针修改传入值*&
- 结构体(20:25)
- 结构体方法(21:20)
- 异常处理(22:30) 函数传入值里加err
- 字符串操作(23:30)len()获取长度
- JSON操作(25:10)
- 时间处理(26:25)使用time.Now获取 time.get构造时间
- 字符串与数字的转换(27:50)
- 获取进程相关信息(28:45)
Go语言实例
2.1 猜谜游戏
系统随机生成一个0-100间的随机数,而使用者进行猜测,系统会返回大了,小了,直至猜测正确
2.2 字典翻译
通过构造http请求,调用翻译软件网站的API,实现字典功能、翻译功能。
2.3 SOCKES5网络代理
实现SOCKES5网络代理,由于作者才疏学浅,具体在实现处进行讲解。
ps:以上三个实验以供读者学习思考,具体实现以及拓展将在评论区或但开一文体现