一.GO语言的实战学习

1.1 前言

在上文我们急速学习了Go语言的入门,今天我们来学习一下Go语言的实战

本专栏代码,源码打包下载地址如下:

https://download.csdn.net/download/weixin_52908342/87389481

二.猜谜游戏

1.导入依赖包:“math/rand”,代码如下:

import ("fmt""math/rand"
)

2.main函数如下:

设置最大数:

maxNum := 100

设置随机种子:

rand.Seed(time.Now().UnixNano())

随机数,并且将随机数输出:

secretNumber := rand.Intn(maxNum)
fmt.Println("The secret number is ", secretNumber)

输出效果:

设置为只读流,输出提示性文字:

fmt.Println("Please input your guess")
reader := bufio.NewReader(os.Stdin)

读取一行输入,并且进行撰写错误日志,代码如下:

input, err := reader.ReadString('\n')
if err != nil {fmt.Println("An error occured while reading input. Please try again", err)return
}

去掉换行符:

input = strings.Trim(input, "\r\n")

将字符串转换为数字,还是一样的撰写错误日志。代码如下

guess, err := strconv.Atoi(input)
if err != nil {fmt.Println("Invalid input. Please enter an integer value")return
}

输出你猜的代码:

fmt.Println("You guess is", guess)

代码效果如下:

3.先导入依赖包,代码如下:

import ("bufio""fmt""math/rand""os""strconv""strings""time"
)

4.在刚刚代码外面加一个for 循环,实现用户可以循环输入猜数字的效果:

for {}

5.对用户输入的值和随机数进行比较,并且对其大小进行一个友好的提示,如果相等,就输出才对了,执行break,结束大循环。退出本次游戏。

fmt.Println("You guess is", guess)
if guess > secretNumber {fmt.Println("Your guess is bigger than the secret number. Please try again")
} else if guess < secretNumber {fmt.Println("Your guess is smaller than the secret number. Please try again")
} else {fmt.Println("Correct, you Legend!")break
}

6.上述代码效果图如下:

三.在线词典例子

以云彩小译为例:

官网:https://fanyi.caiyunapp.com/

我们到这个网站里,点击翻译,去网络里查看,找到dict,找到请求方法为Post的。注意,必须为post请求。

我们找到刚刚的dict,点击右键,赋值为cURL:

使用生成代码器:curlconverter

官网如下:

https://curlconverter.com/go/

粘贴上面复制的内容,然后将下面生成的go语言代码copy带编译器里:

主要代码如下:

创建请求:

req, err := http.NewRequest("POST", "https://api.interpreter.caiyunai.com/v1/dict", data)

设置请求头:

发起请求:

resp, err := client.Do(req)

读取响应:

bodyText, err := ioutil.ReadAll(resp.Body)

成功输出json,如图:

构造结构体:

type DictRequest struct {TransType string `json:"trans_type"`Source    string `json:"source"`UserID    string `json:"user_id"`
}

生成结构体:

我们上面输出了应该json字符串,我们复制到OKTools工具里。

如下:

生成了如下巨大的结构体:

输出我们需要的信息:

fmt.Println(word, "UK:", dictResponse.Dictionary.Prons.En, "US:", dictResponse.Dictionary.Prons.EnUs)
for _, item := range dictResponse.Dictionary.Explanations {fmt.Println(item)
}

代码完善,将Source:后面写为变量,然后在主函数里在终端输入变量,为输入的字符串,然后返回api处理之后的结果:

如下:

最后运行结果如下:

GO语言的实战学习(猜谜游戏和在线词典)| 青训营笔记相关推荐

  1. Go语言实战案例 | 青训营笔记

    这是我参与「第五届青训营 」伴学笔记创作活动的第 2 天 前言 在上一篇笔记中,已经总结了 Go 语言的基础语法和一些常见标准库的使用方法,本文主要基于之前的基础,通过两个实战的例子对 Go 的基础语 ...

  2. Go语言上手(一) | 青训营笔记

    这是我参与「第三届青训营 -后端场」笔记创作活动的的第一篇笔记. 文章目录 语法速览 基础语法 第一:类型 第二:内置库部分 json库的使用 时间库的使用 字符串和数字互转 os相关信息 实战项目 ...

  3. 三个小项目入门Go语言|字节青训营笔记

    前言 这是青训营的第一课,今天的课程比较快速的讲解了go语言的入门,并配合三个小的项目实践梳理所学知识点,这里详细回顾一下这三个项目,结合课后作业要求做一些代码补充,并附上自己的分析,青训期间的所有课 ...

  4. 猜谜游戏、彩云词典爬虫、SOCKS5代理的 Go(Golang) 小实践,附带全代码解释

    猜谜游戏在编程语言实践都已经和 HelloWord 程序成为必不可少的新手实践环节,毕竟,它能够让我们基本熟悉 for 循环.变量定义.打印.if else 语句等等的使用,当我们基本熟悉该语言基础之 ...

  5. 字节青训营第一课之go语言入门的笔记和总结

    有幸参加了字节跳动举办的青训营活动,主要是go语言的编程实践,我将会整理课程的笔记和总结,欢迎关注! 1Go语言简介 由于Go语言有语法简单.高性能等特点,因此国内外各大公司如谷歌.腾讯.字节等都在使 ...

  6. 字节青训营第三课之高质量编程与性能调优实战的笔记和总结

    这是字节青训营第三课:高质量编程与性能调优实战的笔记和总结 概要 准备 尝试使用 test 命令,编写并运行简单测试 尝试使用 -bench参数,对函数进行性能测试 推荐阅读Go代码Review建议. ...

  7. 字节青训营Go语言学习第一天--基础语言+实战案例

    文章目录 走进Go语言基础语言 2.2基础语言-变量 2.3基础语法- if else 2.4基础语法-循环 基础语法-switch 基础语法-数组 基础语法-切片 基础语法-map 基础语法-ran ...

  8. Python项目实战学习 外星人入侵游戏开发总结

    外星人入侵开发总结 设置屏幕大小.游戏名称.背景颜色 pygame.init() #初始化背景设置ai_settings = Settings()screen = pygame.display.set ...

  9. 学习计算机游戏编程,在线游戏学编程,游戏编程汇总

    21世纪必备技能中,计算机成了现在流行的热门课程,今天小编给大家介绍了一些和游戏结合的编程学习平台,让大家对这门枯燥乏味的编程学习尽量变得有趣.下面介绍的游戏编程中有适合作为入门的编程游戏,还有些可能 ...

最新文章

  1. 在Netbeans下配置Tomcat manager用户名与密码
  2. 微软宣布新命令行工具 Windows Terminal 和 WSL2
  3. express中获取url参数
  4. python安装不了是什么问题_安装不上python的模块怎么办?别怕,我这有妙招!
  5. 注入点批量收集工具_如何批量处理短视频,剪辑片头片尾、加图片水印
  6. 使用Javascript 实现类
  7. kinect内参数的标定
  8. 小鹏汽车上市首日股价大涨41.47% 市值150亿美元
  9. mybatis审查要点
  10. python每行输出5个数据_12个流行的Python数据可视化库总结
  11. 软件工程导论面试常见问题
  12. ArcGIS 计算椭球面积
  13. 教你文件批量重命名技巧,彻底告别手工改名的繁琐
  14. 码云上开源JAVA项目收藏
  15. 解决百度云非限速版本被封下载问题
  16. 快速获取iOS APP中的所有素材
  17. 美甲实体行业没有客户?想做线上引流?这些渠道千万别错过!
  18. 区块与共识(一):解决竞选记账权的问题
  19. 固态硬盘用硬盘盒外接但是不显示盘符
  20. 一起善行,助力乌龙泉小学生户外健康运动

热门文章

  1. 邦纳光电传感器QS18VN6R
  2. Xcode下载低版本iOS系统模拟器进行调试
  3. 计算macd、jdk、rsi
  4. 新代系统cnc怎样连接电脑_台湾新代数控系统SYNTEC-CNC应用手册V10-3.pdf
  5. Swoft 1.0 正式来袭,首个基于 Swoole 原生协程的框架
  6. ICV光子盒:2023全球量子通信与安全产业发展展望
  7. pta mysql 训练题集 ( 61-80 )
  8. ubuntu查看网速的工具
  9. nginx--如何基于rpm包进行离线安装及配置(Linux)
  10. MATLAB 报错 The S-Function sourse file cannot be found解决方法