Go语言零基础从语法出发到三个实践案例|青训营笔记

70 阅读3分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 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:以上三个实验以供读者学习思考,具体实现以及拓展将在评论区或但开一文体现