这是我参与「第五届青训营 」伴学笔记创作活动的第二天
猜数字游戏
- 随机数生成
当随机数种子相同时,生成的随机数总是依次相同的。因此为了保证随机数真的随机,我们可以根据当前的时间戳来做种子生成种子
rand.Seed(time.Now().UnixNano())
- 输入输出流
reader:=bufio.NewReader(os.Stdin)
- 字符串格式转换
采用bufio.NewReader(os.Stdin)来读取输入流,则默认为字符串类型,因此我们需要strconv函数来转换字符串
strconv.Atoi("9")//将9(string)转变为9(int)
strconv.Itoa(9)//将9(int)转变为9(string)
package main
import (
"bufio"
"fmt"
"math/rand"
"os"
"strconv"
"strings"
"time"
)
func main() {
maxNum := 100
rand.Seed(time.Now().UnixNano())
secretNum := rand.Intn(maxNum)
fmt.Println(secretNum)
reader := bufio.NewReader(os.Stdin)
for {
input, err := reader.ReadString('\r')
if err != nil {
fmt.Println("1:Invalid Input.Please enter an integer value")
continue
}
input = strings.TrimSuffix(input, "\r")
guess, err := strconv.Atoi(input)
if err != nil {
fmt.Println("2:Invalid Input.Please enter an integer value", err)
continue
}
fmt.Println("Your guess is", guess)
if secretNum < guess {
fmt.Println("Your guess is bigger.Please try again")
} else if secretNum > guess {
fmt.Println("Your guess is smaller.Please try again")
} else {
fmt.Println("Correct")
break
}
}
}
在线词典
- 打开在线翻译网页搜索单词,然后点击检查
- 点击检查中的请求并以cURL的格式复制到[curlconverter.com/go/], 转化为go语言进行运行,可生成这个请求的json文件内容
package main
import (
"fmt"
"io"
"log"
"net/http"
"strings"
)
func main() {
client := &http.Client{}
var data = strings.NewReader(`{"source":["hello",""],"trans_type":"auto2zh","request_id":"web_fanyi","media":"text","os_type":"web","dict":true,"cached":true,"replaced":true,"detect":true,"browser_id":"5b547495c678c70107aed97a98ad7647"}`)
//创建请求
req, err := http.NewRequest("POST", "https://api.interpreter.caiyunai.com/v1/translator", data)
if err != nil {
log.Fatal(err)
}
//设置请求头
req.Header.Set("authority", "api.interpreter.caiyunai.com")
req.Header.Set("accept", "application/json, text/plain, */*")
req.Header.Set("accept-language", "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6")
req.Header.Set("app-name", "xy")
req.Header.Set("content-type", "application/json;charset=UTF-8")
req.Header.Set("device-id", "")
req.Header.Set("origin", "https://fanyi.caiyunapp.com")
req.Header.Set("os-type", "web")
req.Header.Set("os-version", "")
req.Header.Set("referer", "https://fanyi.caiyunapp.com/")
req.Header.Set("sec-ch-ua", `"Not_A Brand";v="99", "Microsoft Edge";v="109", "Chromium";v="109"`)
req.Header.Set("sec-ch-ua-mobile", "?0")
req.Header.Set("sec-ch-ua-platform", `"Windows"`)
req.Header.Set("sec-fetch-dest", "empty")
req.Header.Set("sec-fetch-mode", "cors")
req.Header.Set("sec-fetch-site", "cross-site")
req.Header.Set("t-authorization", "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJicm93c2VyX2lkIjoiNWI1NDc0OTVjNjc4YzcwMTA3YWVkOTdhOThhZDc2NDciLCJpcF9hZGRyZXNzIjoiMjIzLjc0Ljc3LjE2NCIsInRva2VuIjoicWdlbXY0anIxeTM4anlxNnZodmkiLCJ2ZXJzaW9uIjoxLCJleHAiOjE2NzUzNDU5MTh9.H8Q-W_PYQGojVBbch9JmgOfVd6q3NXW2JZf6gs5tf3U")
req.Header.Set("user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36 Edg/109.0.1518.70")
req.Header.Set("x-authorization", "token:qgemv4jr1y38jyq6vhvi")
//发起请求
resp, err := client.Do(req)
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close() //返回的response的Body是一个流,需要手动关闭,避免泄露
//读取响应
bodyText, err := io.ReadAll(resp.Body)
if err != nil {
log.Fatal(err)
}
fmt.Printf("%s\n", bodyText)
}