Go语言快速上手 | 青训营笔记

121 阅读3分钟

这是我参与「第五届青训营」伴学笔记创作活动的第 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语言

  • 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返回的信息到客户端

四、课后个人总结:

  • 好好学习 天天向上