Go 语言基础 - 基础语法 | 青训营笔记
这是我参与「第五届青训营 」笔记创作活动的第1天
由于前几天有其他事情耽搁了一下,导致课程有点堆积,所以今天才开始正式学习。
一、本堂课重点内容:
本节课程讲了以下几个方面:
- Go 语言简介
- Go 语言开发入门
- Go 实战
二、详细知识点介绍:
1.本堂课首先讲解 Go 语言的相关背景知识。从开发环境、基础语法和标准库出发,协助同学轻松入门,目前主流的Go语言编辑器主要是VsCode和Goland。
2.其次是Go语言的入门语法 下面是一个简单的Go语言的程序结构:
//首先这里声明包名为main包
package main
//使用import关键字导入程序所需的依赖包fmt
import (
"fmt"
)
//mian函数,Go语言程序运行时不可缺少的一个函数
func main() {
//使用fmt这个依赖包的Println方法打印输出 hello world 到控制台
fmt.Println("hello world")
}
3.最后是Go语言的实战部分 在实战部分,主要讲了三个实战案例,分别是:猜字谜游戏案例、使用彩云小译API翻译案例、实现Socks5协议搭建代理服务器案例。
三、实践练习例子:
在这个部分主要记录一下猜字谜游戏案例的实现思路和代码
猜字谜游戏案例代码:
//首先声明包名
package main
//导入所需依赖包
import (
"bufio"
"fmt"
"math/rand"
"os"
"strconv"
"strings"
"time"
)
//主函数main
func main() {
//定义一个数值maxNum=100用于生成100以内的一个随机数
maxNum := 100
/**
使用rand包下的Seed使用给定的seed将默认资源初始化到一个确定的状态;
如未调用Seed,默认资源的行为就好像调用了Seed(1)。
**/
rand.Seed(time.Now().UnixNano())
//生成一个伪随机数secretNumber
secretNumber := rand.Intn(maxNum)
//使用fmt包下的Println方法,提示用户输入内容
fmt.Println("Please input your guess")
//使用bufio包下NewReader方法获取用户输入的内容
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")
//将输入的内容使用strings包下的Atoi转化为整数类型
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 {
//猜对了,使用break关键字结束循环
fmt.Println("Correct, you Legend!")
break
}
}
}
四、课后个人总结:
通过学习基础,基本学会了Go语言的基础语法。此外,还了解到Go语言具有学习曲线容易、快速的编译时间,开发效率和运行效率高、天生的支持并发等优势。