这是我参与「第三届青训营 -后端场」笔记创作活动的的第1篇笔记
主要内容为对第一次课后作业进行记录。
1.猜数字
比较简单,考虑加了输入检测,如输入sdad字符串时能识别错误并提示
以首先以字符串的形式读入输入,再判断是否能转化为int类型
2.3 查询单词
首先记录一下遇到的问题
- curl cmd命令无法识别
在课程中老师的环境是MAC,而在我的window环境下, copy as cURL(cmd) 在命令行中运行失败。
解决思路:因为这里的cURL是在后面的第三方网站中需要转化为代码,所以我尝试 copy as cURL (bash) 将粘贴板中的内容直接在 curlconverter.com/#go
网站中进行转换
讲转换后的代码复制到编译器中尝试运行,结果发现可以得到JSON串,解决。
解决思路: 回顾了老师的过程,目的是得到一串JSON文件,从而获得解析翻译的JSON格式,于是我从浏览器中选择copy as PowerShell ,在window中打开PowerShell,复制命令后运行,成功得到JSON串。
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
}
运行结果