GO语言基础 | 青训营笔记

445 阅读3分钟

这是我参与「第五届青训营 」笔记创作活动的第1天

一、本堂课重点内容: Go语言介绍;Go语言的环境配置,基础语法,标准库;Go语言简单的项目实战。

二、详细知识点介绍:

1、Go语言的介绍:

高性能高并发,语言简单学习曲线平缓,具有丰富的标准库而不是需要限制版本的第三方库,有完善的工具链,静态链接编译后不需要部署大量文件,快速编译,跨平台甚至是嵌入式设备,自带垃圾回收机制而不用过多关注内存回收,

2、Go语言开发入门,包括开发环境配置、基础语法、标准库:

开发环境使用go+goland;

我觉得基础语法讲的很简洁高效,example示例代码由浅入深,包括helloworld、变量常量的定义和使用、for循环的规则(做到一个for代替c++中所有循环)、if的使用规则(不加括号,中括号位置)、switch使用(不需要所有都进行一遍,可以当成if使用更清晰)、数组的定义方式、slice的使用(个人理解类似于vector,make定义空的,append增加元素,切片的使用)、map的定义和使用(引出了返回值ok)、range的使用、函数的定义(这里返回值要注意)、指针的使用(仅作为修改参数的工具,没有其他语言这么强大)、struct结构体的定义和使用、结构体方法也就是把普通函数定义成类似于成员函数、Go语言的错误处理(这个在实战例子中展现出很常用,平时在其他语言中容易忽略)、string类型的一些实用函数比如是否含有,前缀后缀等、fmt的打印(%v,%+v,%#v)、json文件生成(大写字母开头,第一次了解到但是感觉很好)、时间处理(获取当前时间,构造时间,时间戳)、数字类型的转换、获取进程相关信息的方法。

3、Go语言的应用实战

猜谜游戏:

V1:生成一个随机数并打印,发现一直是一样的;

V2:以当前时间为随机数生成函数的种子,产生不同的随机数;

V3:增加io流读入的用户输入数字,做异常处理后打印输入;

V4:在V3基础上加了if判断大小;

V5:增加死循环让用户一直输入直到猜到正确的值。

命令行在线词典:

V1:如何找到翻译网站的http信息,并且通过在线的代码转换器转换成go语言,运行后返回json;

V2:定义字典结构体转换成json代替之前直接拷贝的数据,结果还是相同的;

V3:现在需要把返回的json文件中的需要的信息进行抽取,需要定义结构体,同样借助在线转换把输出的json文件转换成结构体,把收到的结果放进这个结构体;

V4:分离main函数,重新定义query函数传进去要查询的单词,后面搞个循环一直查询并且判断参数并打印需要的信息。

实现socks5代理

V1:首先了解socks5协议的具体流程,分为几个阶段,先实现监听echo简单测试;

V2:按协议的结构实现第一步发送请求;

V3:按协议的结构实现第二步与服务器的连接;

V4:for死循环,并且copy返回的信息到客户端。

三、课后个人总结:

这一节课真的能把我这个从来没学过Go语言的小白教会看Go代码甚至理解一些小项目。内容真的很多很充实,需要慢慢消化。我会继续加油的!