这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天
一、本堂课重点内容:
- 本堂课主要讲解了go语言的基础语法和相关的应用场景
二、实践练习例子:
翻译引擎信息获取
v1版本
首先需要获取翻译引擎的网络状态和网络信息,查看请求格式。
通过在网页上右键,选择“检查”项,查找名称为dict的请求,并将其相应信息以cURL的形式copy下来。
需要注意的是,选择复制的dict项其负载和预览形式大致如下:
获取下来后,利用网站:curlconverter.com/go/ 将cURL转为Go语言构造消息。
如此我们便完成了第一步:请求信息的构造,构造的请求信息大致如下(运行结果):
v2版本
在v1版本中,单词是固定的。但事实上,需要查询的单词是可以改变的,所以我们需要将单词改为可变化。因此,我们需要将负载中的json格式固定化,这样我们可以随时用一个word去取代其中的source.
type DictRequest struct {
TransType string `json:"trans_type"`
Source string `json:"source"`
UserID string `json:"user_id"`
}
其运行结果同v1,此处不再展示。
v3版本
查看返回信息可以发现,返回的信息复杂且杂乱,所以需要将返回的信息利用json格式化编排,并从中获取我们需要的信息。右键复制预览中的json信息,并利用网址:oktools.net/json2go 将其json信息转化为go语言的结构体构造形式,并选择转换-嵌套,其结果大致如下:
将其添加入我们的go代码中,并将回应信息用json格式打印出来。这里我们用到了
json.Unmarshal(bodyText, &dictResponse)
与前面的marshal类似,这个是将json文本转化为对应的数值存储入结构体中
最终版本
最后我们需要整理一下我们获取的信息和我们需要输入的信息。将我们需要获取的信息利用结构体打印出来,输入的信息通过scanf输入,其最终运行结果大致如下:
三、课后个人总结:
在第一节课程中,首先是对大部分常用的基础知识进行了讲解,在有一定语言基础的情况下学习起来还是相对较为简单的。但是一些细节方面也需要多注意,比如在go中,前括号需要与语句在同一行。
在第二节课程中,难度加大。比如说在翻译信息的获取这个工程中,需要对计算机网络有一定了解,并且在其中所用到的一系列工具(各个网站)也是需要经验的积累的,不然初学者可能就直接手动构造了(比如我)。
但是无论各个课程难度如何,学完并且自己手动编写代码之后,我还是收获颇丰,并且有很强的成就感,这种学习体验是非常难得的,希望在往后的训练营课程中我能继续保持这种状态。