Go语言实战案例 | 青训营笔记

70 阅读2分钟

本节课有三个实战代码:

1.猜字谜游戏

本题挺简单的,算是个很简单的模拟题吧,没什么算法。掌握Go的输入输出、条件判断以及循环和break就可以了。对了,还有随机数生成方式。

2.在线词典介绍

本题需要用到Go语言来调用第三方api来对单词翻译。第三方翻译:彩云翻译:fanyi.caiyunapp.com,需要用到浏览器的开发者工具。 主要分成两步:

2.1 网址代码转化(Go)

(1)利用开发者工具(检查),查看一下如果点击了一下翻译会发送什么样的请求:

image.png

image.png

image.png

(2)利用工具生成Go代码 在dict上右键 -> 复制 -> 复制为cURL(bash),然后在终端中粘贴一下,会返回JSON。将cURL赋值到:curlconverter.com/#go

image.png

运行了一下,输出结果:

image.png 接下来需要设置输入(var data),把它变成一个变量输入。 创建结构体,其中包含了JSON的处理方式:

image.png TransType string json:"trans_type" // 解析是使用trans_type

(3)将翻译后生成的response body解析 经过翻译之后的response body很复杂,js/python中,这个response body会被认为成一个map或者dict类型的数据,可以key取值,go语言中不可以。 在go中可以写一个结构体,将JSON结构反序列化到结构体中。 利用:oktools.net/json2go

image.png

将上图生成的结构体复制到代码中,然后利用json包,反序列化到这个结构体中:

image.png 运行一下的话,跟之前一样,但是构成结构体后,我们就可以选择要输出的内容了:

image.png

然后再做一个输入,将翻译的内容作为Word传入到翻译的函数中:

image.png

image.png

这样就可以运行了:

image.png

2.2 JSON格式化

总结:这个题感觉用到了好多现在有代码生成工具,一个是翻译网址转成Go程序,一个是JSON转成Go的结构体,然后就把需要输出的信息选出来就行了。之前从来没在C++体验过这种编程方式。

3.SOCKS5 代理协议

这个太难了,有时间再去弄吧。