GO语言实战案例 | 青训营

猜谜游戏

简介:

根据输入的数字来判断猜高了还是猜低了,进而得出准确的数字

1.生成随机数

需要引入库"math/rand"使用rand.Intn(maxNum)来生成一个随机数,但是这样只能生成一次随机数,还需要引入新的库"time"来生成种子rand.seed(time.Now().UnixNano()),随后再使用rand.Intn(maxNum)就可以生成多次随机数了,把这个随机数赋值给secretNumber

go 复制代码
rand.seed(time.Now(),UnixNano())
secretNumber := rand.Intn(maxNum)  //maxNum为自己设定的最大值

2.读取用户输入

引入"bufo","os""strconv","strings"

go 复制代码
reder := bufo.newReader(os.Stdin)
input,err := reader.ReadString('\n')

这样实现读取一行的功能,但是还多出来了一个换行符,还需要使用strings.TrimSuffix(input,'\n')来去掉换行符,这样我们得到了读入的字符串,但是我们最终需要的是一个数字,所以我们还需要使用guess,err := strconv.Atoi(input)把字符串转换成数字并赋值给guess,这个就是用户输入的数字

3.实现判断逻辑

就是简单的把guess的值与我们生成的随机数进行比较,使用ifelse语句

go 复制代码
if guess > secretNumber{
    fmt.Println("Too large, try again!!")
}else if guess < secretNumber{
    fmt.Println("Too small, try again!!")
}else fmt.Println("U are right")

4.实现循环

加在读入这一行的前面

go 复制代码
for{
    guess,err := reader.ReadString('\n')
    .....
}

注意如果读入的内容不符合要求需要continue重新读入,在猜对了以后break退出循环

源代码:hi-hi.cn/go (来自课程内容)

在线词典

简介

根据输入的单词来给出相应的音标和注释,调用第三方的api来查询单词

抓包

笔者使用的是windows,谷歌浏览器

链接:fanyi.caiyunapp.com/

1.右键点击检查

2.选择network

3.输入文本点击翻译后,在中间ms区间那里鼠标滚轮上下滑动,出现下列界面

4.选择Request Method中为Postdict选项

5.PayloadPreview中界面与下图一致则说明操作正确了

6.复制代码(选择bash)

到这个链接:curlconverter.com/#go

在这里粘贴 选择go 将生成出的代码粘贴到编译器中

生成request body

构造一个结构体

go 复制代码
type Dictrequest struct{
   Transtype string `json:"trans_type"`
   Source string `json:"source"`
   UserID string `json:"user_id"`
}

解析response body

链接:oktools.net/json2go

将preview中的json字段粘贴进去

效果 点击转换嵌套

完善输出

源代码:hi-hi.cn/go 成功执行

小结

这一章难度对于我来说实在是过大了,具体的内容也不是很理解,特别是抓包部分后面就听的一头雾水了,只能照着代码写,照着老师的操作来模仿,最后面这一部分还是没懂,只好把源代码贴上来了,不过搞了这么久最后也算成功运行了。

相关推荐
千慌百风定乾坤9 小时前
Go 语言入门指南:基础语法和常用特性解析(下) | 豆包MarsCode AI刷题
青训营笔记
FOFO9 小时前
青训营笔记 | HTML语义化的案例分析: 粗略地手绘分析juejin.cn首页 | 豆包MarsCode AI 刷题
青训营笔记
滑滑滑2 天前
后端实践-优化一个已有的 Go 程序提高其性能 | 豆包MarsCode AI刷题
青训营笔记
柠檬柠檬2 天前
Go 语言入门指南:基础语法和常用特性解析 | 豆包MarsCode AI刷题
青训营笔记
用户967136399652 天前
计算最小步长丨豆包MarsCodeAI刷题
青训营笔记
用户52975799354723 天前
字节跳动青训营刷题笔记2| 豆包MarsCode AI刷题
青训营笔记
clearcold3 天前
浅谈对LangChain中Model I/O的见解 | 豆包MarsCode AI刷题
青训营笔记
夭要7夜宵4 天前
【字节青训营】 Go 进阶语言:并发概述、Goroutine、Channel、协程池 | 豆包MarsCode AI刷题
青训营笔记
用户336901104444 天前
数字分组求和题解 | 豆包MarsCode AI刷题
青训营笔记
dnxb1234 天前
GO语言工程实践课后作业:实现思路、代码以及路径记录 | 豆包MarsCode AI刷题
青训营笔记