0
点赞
收藏
分享

微信扫一扫

Go语言 猜谜游戏+在线词典 2月摸鱼计划01

3.1猜谜游戏

3.1.2 生成随机数v2

package main

import (
	"fmt"
	"math/rand"
	"time"
)

func main() {
	maxNum := 100
	rand.Seed(time.Now().UnixNano())
	secretNumber := rand.Intn(maxNum)
	fmt.Println("The secret number is ", secretNumber)
}

3.1.3 读取用户输入

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

func 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.1.4 实现判断逻辑

Go语言 猜谜游戏+在线词典 2月摸鱼计划01_Go

3.1.5 实现游戏循环

Go语言 猜谜游戏+在线词典 2月摸鱼计划01_代码生成_02

3.2 在线词典介绍

这个实例中我们将学习:

如何用Go语言发送http请求、解析JSON,还会学习如何使用代码生成提高效率

3.2.1 抓包

Go语言 猜谜游戏+在线词典 2月摸鱼计划01_代码生成_03

Go语言 猜谜游戏+在线词典 2月摸鱼计划01_随机数_04

3.2.1 代码生成

想办法在Go里面发送这个请求!

Go语言 猜谜游戏+在线词典 2月摸鱼计划01_随机数_05

有几个Header比较复杂 转义导致的编译错误

Go语言 猜谜游戏+在线词典 2月摸鱼计划01_Go_06

3.2.2 生成代码解读

转换成流 异常 ;

defer手动关闭流 defer会在函数结束之后 从下往上触发 防止泄露

Go语言 猜谜游戏+在线词典 2月摸鱼计划01_随机数_07

Go语言 猜谜游戏+在线词典 2月摸鱼计划01_随机数_08

3.2.3 生成request body

Go语言 猜谜游戏+在线词典 2月摸鱼计划01_Go_09

3.2.4 解析response body

点击“转换-嵌套” 生成的代码会紧凑一点

Go语言 猜谜游戏+在线词典 2月摸鱼计划01_Go_11

Go语言 猜谜游戏+在线词典 2月摸鱼计划01_Go_13

3.2.5 打印结果

Go语言 猜谜游戏+在线词典 2月摸鱼计划01_Go_14

3.2.6 完善代码

Go语言 猜谜游戏+在线词典 2月摸鱼计划01_Go_16

Go语言 猜谜游戏+在线词典 2月摸鱼计划01_Go_17

举报

相关推荐

0 条评论