Go 语言基础 - 基础语法 | 青训营笔记

123 阅读3分钟

Go 语言基础 - 基础语法 | 青训营笔记

这是我参与「第五届青训营 」笔记创作活动的第1天

由于前几天有其他事情耽搁了一下,导致课程有点堆积,所以今天才开始正式学习。

一、本堂课重点内容:

本节课程讲了以下几个方面:

  1. Go 语言简介
  2. Go 语言开发入门
  3. 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语言具有学习曲线容易、快速的编译时间,开发效率和运行效率高、天生的支持并发等优势。