一、 猜谜游戏介绍 实现思路:1.首先我们要生成随机数(我们会发现随机生成的是同一个数字)这时候我们要使用用时间戳来初始化随机数种子 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) } 2.读取用户输入 fmt.Println("Please input your guess") reader :=bufo.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.TrimSuffix(input, "\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.实现判断逻辑 if guess > secretNumber { fmt.Println("Your guess is bigger than the secret number. p Please try again") } else if guess < secretNumber { fmt.Println("Your guess is smaller than the secret number. Please try again") } else { fmt.Println("Correct, yo u Legend!") } } 4.实现游戏循环 二、 在线词典介绍
- 抓包
- 代码生成
- 生成代码解读
- 生成request body
- 解析response body
- 打印结果
- 完善代码 01.首先我们了解一下并发VS并行(GO可以充分发挥多核优势,高效运行) 并发:多线程程序在一个核的CPU上运行 并行:多线程程序在多个核的CPU上运行 1.1Goroutine 协程:用户态,轻量级线程,栈KB级别 线程:内核态,线程跑多个协程,栈MB级别 快速打印goroutine lfunc hello(i int) { println("hello goroutine : " + fmt.Sprint(i))} func HelloGoRoutine((){ for i := 0; i < 5; i+ { go func(j int) { hello(j)}(i) time.Sleep(time.Second) 1.2CSP(提倡通过通信共享内存而不是通过共享内存而实现通信) 1.3 Channel make(chan 元素类型,[缓冲大小]) 无缓冲通道 make(chan int) 有缓冲通道 make(chan int,2) 2.1.1 GOPATH bin 项目编译的二进制文件 pkg 项目编译的中间产物,加速编译 src 项目源码 √ 项目代码直接依赖 src下的代码 go get 下载最新版本的包到 src 目录下 2.1.2 Go Vendor 项目目录下增加 vendor 文件,所有依赖包副本形式放在 {MAJOR}.{PATCH}