GO语言工程实践课后作业(猜数游戏、在线词典)| 青训营

91 阅读1分钟

1.猜数游戏
源码基础上用scanf做简化输入,只需对源码20~29行修改为以下内容

var guess int
	for {
		_, err := fmt.Scanf("%d",&guess)
		if err != nil {
			fmt.Println("Invalid input. Please enter an integer value")
			continue
		}

这里仍需要注意两个点:
一是修改后需要删除之前import的部分库,因为go语言更注重简洁性,存在任何导入未使用的包或者变量都会编译报错;
二是可能有部分小伙伴在使用vscode终端输入时总是会额外输出一行"Invalid input. Please enter an integer value"。笔者经过测试后认为,这是由于在每次判定结束后,vs的终端输入会自动输入一次换行符,导致下一次Scanf的输入变为无效,从而额外输出了一次错误的信息
2.在线词典
2.1.网页抓包

打开百度翻译网页,右键单击再点击检查,找到网络选项,输入一次单词单击翻译后,找到名为sug的文件,复制为cURL

image.png 2.2.代码转化
打开网页curlconverter.com/go/ 转化复制的cURL,新建一个go文件粘贴进去,运行如下

image.png 2.3.JSON转化
把得到的字符串转为JSON,需要定义一个结构体与请求后的response来对应起来用来接收数据,通过第一节课中所讲的JSON反序列化到结构体里即可
2.4.参数获取
这里我采用最简单的Scanln和函数的读取参数,同时对传入的参数做处理为如下方式,即可不用结构体来序列化

var word1 string = "kw="
word1 += word
var data = strings.NewReader(word)

2.5.运行结果

image.png