0
点赞
收藏
分享

微信扫一扫

Go实战篇 1

猜谜游戏

游戏通过程序生成一个随机数让玩家进行猜测,玩家输入一个数字后,程序给出提示:该数字是大于还是小于随机数,直至玩家猜对为止,退出程序。

如何获得随机数?

在Go中,使用 math/rand 包中的函数生成随机数,如下:

func main() {
	maxNum := 100	// 用于指定随机数的上界
	rand.Seed(time.Now().UnixNano())	// 使用Unix时间戳来初始化随机数的种子
	secretNumber := rand.Intn(maxNum)	// 调用Intn函数,生成一个随机数并存储在secretNumber中
	fmt.Println("The secret number is ", secretNumber)
}

但是在go1.20中 rand.Seed() 已经弃用,可以采用 rand.New(rand.NewSource()) 来实现获取随机数

rand.New(rand.NewSource(time.Now().UnixNano()))

如何从键盘接收用户的输入?

我们引入 "bufo","os""strconv","strings" 包,输入流 stdin文件 可以使用 os.Stdin 来得到,通过转换成 reader 变量更易于操作,使用 ReadString() 来读取一行,但是我们最终需要的是一个数字,所以我们还需要去掉 \n

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.Scanf("%d", &guess) 来实现读取输入

_, err := fmt.Scanf("%d", &guess)

JSON是JavaScript Object Notation的缩写,一种轻量级的数据交换格式。JSON通常用于在服务器和网页之间发送数据,它具有“自描述性”,易于理解[。JSON格式与创建JavaScript对象的代码语法相同,因此JavaScript程序可以轻松地将JSON数据转换为本地JavaScript对象。JSON语法源自JavaScript对象表示法语法,但JSON格式仅为文本。可以使用任何编程语言编写读取和生成JSON数据的代码

[JSON数据以名称/值对的形式编写,就像JavaScript对象属性一样。名称/值对由字段名称(用双引号括起来),后跟冒号,然后是值组成:"firstName": "John"。JSON名称需要双引号,而JavaScript名称则不需要。

在线词典

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

彩云翻译

从网页中获取API地址

  1. 通过F12或者鼠标右键->检查进入开发者工具,点击 network
  2. 如本例,在文本框输入一个单词,并在点击翻译后,观察 network 标签页下记录的网络请求。
  3. General下的Request URL便是我们需要的API地址。
  4. 右键 copy as cURL

![](D:\All sorts of files\Files\LearningNote\Profession\Golang\Pictures\API_get.png)

curl 'https://lingocloud.caiyunapp.com/v1/dict' \
  -H 'Accept: application/json, text/plain, */*' \
  -H 'Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6' \
  -H 'Connection: keep-alive' \
  -H 'Content-Type: application/json;charset=UTF-8' \
  -H 'Cookie: _gcl_au=1.1.255116589.1691824274; _gid=GA1.2.1701381937.1691824274; _ga_65TZCJSDBD=GS1.1.1691824273.1.1.1691825833.0.0.0; _ga_R9YPR75N68=GS1.1.1691824273.1.1.1691825833.59.0.0; _ga=GA1.2.599597692.1691824274; _gat_gtag_UA_185151443_2=1' \
  -H 'Origin: https://fanyi.caiyunapp.com' \
  -H 'Referer: https://fanyi.caiyunapp.com/' \
  -H 'Sec-Fetch-Dest: empty' \
  -H 'Sec-Fetch-Mode: cors' \
  -H 'Sec-Fetch-Site: same-site' \
  -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36 Edg/115.0.1901.200' \
  -H 'X-Authorization: token:qgemv4jr1y38jyq6vhvi' \
  -H 'app-name: xy' \
  -H 'device-id: 2a208a2d2e62d151bf2a0d125a770410' \
  -H 'os-type: web' \
  -H 'os-version;' \
  -H 'sec-ch-ua: "Not/A)Brand";v="99", "Microsoft Edge";v="115", "Chromium";v="115"' \
  -H 'sec-ch-ua-mobile: ?0' \
  -H 'sec-ch-ua-platform: "Windows"' \
  --data-raw '{"trans_type":"en2zh","source":"awsom"}' \
  --compressed

使用Convert curl to Go (curlconverter.com)将curl转换成Golang

{
  "rc": 0,
  "wiki": {},
  "dictionary": {}
}

点击 preview ,右键-> copy value,使用JSON转Golang Struct - 在线工具 - OKTools,将json转换成Golang Struct

举报

相关推荐

0 条评论