这是我参与「第五届青训营」伴学笔记创作活动的第 1 天
一、本堂课重点内容:
- Go语言简介
- Go语言入门:
- 环境配置
- 基础语法
- 标准库
- Go语言实战
- 猜谜游戏
- 命令行词典
- SOCKS5代理
二、详细知识点介绍:
-
1.什么是Go语言?
- 高性能、高并发
- 有和C++,Java媲美的性能,支持高并发
- 语法简单、学习曲线平缓
- 类似于C,并大幅度简化
- 丰富的标准库
- 和C语言一样,大部分不需要借助第三方库,稳定
- 完善的工具链
- 诞生之初即拥有丰富工具链,内置单元测试框架,支持单元测试,性能测试,代码覆盖率,性能优化等
- 静态链接
- 默认静态链接,拷贝编译后唯一一个可执行文件即可部署运行
- 快速编译
- 静态语言中最快的编译速度
- 跨平台
- 可在Windows、Linux、Macos等平台运行,也可用来开发Android、Ios,还可在路由器上运行,无需配置交叉编译环境
- 垃圾回收
- 和Java类似,无需考虑内存释放,只需专注业务逻辑
- 高性能、高并发
-
2.为什么字节跳动用Go语言?
- Python性能问题
- C++不适合在线Web业务
- 早期团队非Java背景
- 性能好
- 部署简单,学习成本低
- 内部RPC和HTTP框架推广
-
3.安装Go语言
- go.dev 下载安装即可,不行就用镜像 studygolang.com/dl 。
- vscode 搜索下载即可
-
4.基础语法
三、实践练习例子:
-
猜谜游戏
- 生成一个随机数,发现结果是同一个的
- 查看文档(鼠标悬浮后点击)以当前时间为随机数生成函数的种子,产生不同的随机数
- 增加io流读入的用户输入数字
- 对比用户输入和生成的随机数,if判断大小后提示;
- 死循环让用户一直输入直到猜到正确的值。
-
在线词典
- 抓包:任选翻译网站--开发者工具--network--post请求。
- 代码生成:copy as cURL 返回json命令.代码生成网址: https://curlconverter,com/#go
- 生成代码解读:创建请求--设置请求头--发起请求--读取响应
- 生成request body:构建和json一样的结构体--json.Marshal()
- 解析request body:oktools.net/json2go Json转Golang Struct
- 打印结果:注意差错检测,resp.StatusCode 返回的状态码应该是200。
- 完善代码
V2:定义字典结构体转换成json代替之前直接拷贝的数据,结果还是相同的;
V3:现在需要把返回的json文件中的需要的信息进行抽取,需要定义结构体,同样借助在线转换把输出的json文件转换成结构体,把收到的结果放进这个结构体;
V4:分离main函数,重新定义query函数传进去要查询的单词,后面搞个循环一直查询并且判断参数并打印需要的信息。
- SOCKS5代理
- 了解socks5协议的具体流程,实现监听echo简单测试;
- 发送请求
- 连接服务器
- copy返回的信息到客户端
四、课后个人总结:
- 好好学习 天天向上