第一次实践作业记录 | 青训营笔记

175 阅读2分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的的第1篇笔记

主要内容为对第一次课后作业进行记录。

1.猜数字

比较简单,考虑加了输入检测,如输入sdad字符串时能识别错误并提示

image.png 以首先以字符串的形式读入输入,再判断是否能转化为int类型

2.3 查询单词

首先记录一下遇到的问题

  1. curl cmd命令无法识别

在课程中老师的环境是MAC,而在我的window环境下, copy as cURL(cmd) 在命令行中运行失败。 image.png

解决思路:因为这里的cURL是在后面的第三方网站中需要转化为代码,所以我尝试 copy as cURL (bash) 将粘贴板中的内容直接在 curlconverter.com/#go 网站中进行转换

image.png 讲转换后的代码复制到编译器中尝试运行,结果发现可以得到JSON串,解决。

image.png

解决思路: 回顾了老师的过程,目的是得到一串JSON文件,从而获得解析翻译的JSON格式,于是我从浏览器中选择copy as PowerShell ,在window中打开PowerShell,复制命令后运行,成功得到JSON串。

image.png

2.后来发现,直接copy as bash 然后复制到covert网站就可以生成代码其实上面一步都不需要运行。 于是我们用浏览器打开火山翻译网站,F12打开控制台,找到翻译消息的post请求,copy as bash,然后Convert转换为代码,复制到编译器中。

3.将第二步中,post请求返回的JSON结构体复制到OKTools的JSON转golang struct,得到response结构体

4.调整一下第二步得到的代码,将请求data里的数据也封装成结构体,并用到JSON的 Marshal()方法

5.实现并发查询,使用sync.WaitGroup ,为WaitGroup中添加2个计数器,并分别将彩云翻译和火山翻译封装为函数,在每个函数结束后调用wg.Done(),在main中用wg.Wait()等代协程查询单程完毕。

整体结构如下

//彩云翻译请求结构体
type DictRequsetOfCaiyun struct {
    //pass
}

//彩云翻译json解析对应的respond结构体
type DictResponseOfCaiyun struct {
  //pass
}

//火山翻译请求结构体
type DictRequsetOfHuoshan struct {
  //pass
}

//火山翻译响应体
type DictResponseOfHuoshan struct {
 //pass
}

func caiyunTranslate(word string) {
   //pass
   wg.Done()
}

func HuoshanTranslate(word string) {
   //pass
   wg.Done()

}

var wg sync.WaitGroup //并发控制
func main() {
   wg.Add(2)
   var word string
   fmt.Println("请输入需要翻译的英语单词 ")
   fmt.Scanf("%s", &word)

   go caiyunTranslate(word)
   go HuoshanTranslate(word)
   wg.Wait()
   return
}

运行结果

image.png