这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天
Go语言上手-基础语法
入门
开发环境
一、简介
- 高性能、高并发
- 语法简单、学习曲线平缓
- 丰富的标准库
- 完善的工具链
- 静态链接
- 快速编译
- 跨平台
- 垃圾回收
基础语法
- Hello Wrold
- 变量
- if else
- 循环
- switch
- 数组
- 切片
- map
- range
- 函数
- 指针
- 结构体
- 结构体方法
- 错误处理
标准库
- 字符串操作
- 字符串格式化
- JSON处理
- 时间处理
- 数字解析
- 进程信息
实战
猜谜游戏
这个游戏较为简单,就是利用随机种子生成一个随机数,每次读取输入内容与随机数进行比较,直到相等,需要注意读入字符串的处理
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.Trim(input, "\r\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
}
}
}
命令行词典
命令行词典中,用到了许多的工具,JSON转换器等,非常地方便,实现起来轻松许多了
SOCKS5代理
网络这一块的内容,没了解过,老师的讲解方式,让我能够同步老师的思路,主要就是确定请求的组成,然后分别读取判断