golang基础:day1|青训营笔记

62 阅读1分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的的第1篇笔记

猜数游戏: 电脑随机生成一个数字,玩家输入一个数来猜电脑随机生成的数字,猜错后会提示输入的数字比随机数是大还是小。 课上的最终代码为 `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)

    for {

        input, err := reader.ReadString('\n')

        if err != nil {

            fmt.Println("An error occured while reading input. Please try again", err)

            continue

        }

        input = strings.TrimSuffix(input, "\n")

\

        guess, err := strconv.Atoi(input)

        if err != nil {

            fmt.Println("Invalid input. Please enter an integer value")

            continue

        }

        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

        }

    }

}

`

作业的代码: `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)

\

    fmt.Println("Please input your guess")

\

    //reader := bufio.NewReader(os.Stdin)

    for {

        var guess int

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

\

        //guess, err := strconv.Atoi(input)

        if err != nil {

            fmt.Println("Invalid input. Please enter an integer value")

            continue

        }

        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

        }

    }

}

`

该问题的思路是: 先创建一个变量secretNumber用来存储随机数,创建一个死循环,里面再创建一个变量读取用户输入的数据,用if语句判断用户输入的数和随机数的关系(>、<、=),如果不等于就退出本次循环,进行下一次输入。

课上的代码读取比较繁琐,直接用fmt.Scanf()代码会更加简洁

翻译: 先用浏览器的开发者工具抓取翻译时的数据包,然后复制C_url,将c_url转为go代码,再将请求和响应的json转为go代码,通过一系列判断输出。