GO语言实战案例
猜字谜 - 生成随机数
下面这个是我仿照老师上课讲的,写的生成随机数的代码如下:
执行的效果如下图:
而且每次执行都是这一个数字,那怎么才能改变呢:需要加上rand.Seed这个代码使用初始化时间戳来解决这问题
输出结果第一次为:
输出结果第二次为:
到这里其实我们就完成了生成随机数的代码的实现
猜字谜 - 读取用户信息
下面的代码就是需要用户输入一个数字和随机生成的一个数据比较看
下面是运行结果这里是我输入了一个数字12,随机数生成的是52
猜字谜 - 实现判断逻辑
整体的代码如下:
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 sec ret 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)
return
continue
}
input = strings.TrimSuffix(input,"\n")
guess,err := strconv.Atoi(input)
if err != nil{
fmt.Println("Invalid input.Please enter on integer value")
return
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
}
}
}
实现结果截图如下:
SOCKS5 代理介绍
SOCKS5 代理 - 原理
SOCKS5 代理 - TCP echo server
SOCKS5 代理 - auth
SOCKS5 代理 - 请求阶段
SOCKS5 代理 - relay阶段
课程总结
介绍了go语言进阶的一些语法,总的来说上课的感受还是比较好的,从猜字谜到在线词典到SOCKS代理的一些介绍,对以后学习这块的知识打下了基础。