Go语言基础 | 青训营笔记

543 阅读3分钟

Go语言基础 | 青训营笔记

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

一、本堂课重点内容:

Go语言是Google开发的一种静态类型、编译型、并发型的编程语言。本节课详细讲解了 Go 语言的相关背景知识,从开发环境、基础语法和标准库出发,通过详解三个实际案例,从入门到实操,由浅入深,快速入门 Go 语言。

二、详细知识点介绍:

开发环境

  • 安装Go语言:在官网go.dev/下载并安装 Go 语言。
  • 设置环境变量:在系统环境变量中设置 GOROOT 和 GOPATH。
  • 安装编辑器或集成开发环境(IDE):作者选择 Goland。

基础语法

  • 包声明:Go 语言源程序以 package 开头。
  • 导入包:使用 import 关键字导入需要使用的包。
  • 函数定义:使用 func 关键字定义函数。
  • 变量声明:使用 var 关键字声明变量。
  • 控制结构:Go 语言支持 if、for、switch、goto 等控制结构。
  • 注意点:
    1. Go 中 = 和 := 的区别:
      = 是用于给变量赋值,这个被赋值的变量一定要是一个已经被定义过的变量,否则会报错; := 是用于未被定义过的变量,编译器自动进行右值推导定义并赋值。
    2. Go 中的循环结构只有 for。
    3. if-else 中 if 后没有括号,添加后会自动去掉。
    4. switch 不执行后续分支,也不需要 break 语句来跳出。
    5. Go 的时间格式化为 2006-01-02 15:04:05。
    6. Go 函数中参数类型是后置的。
    7. Go 的格式化输出:
      %v 只输出所有的值
      %+v 先输出字段类型,再输出该字段的值
      %#v 先输出结构体名字值,再输出结构体

Go语言标准库

  • fmt:提供了格式化输入输出的函数。
  • os:提供了与操作系统交互的函数。
  • net:提供了网络编程的函数。
  • strings:提供了字符串操作的函数。

三、实践练习例子:

猜谜游戏

获取随机数,不加随机种子,每次获取的都是重复的随机数据。常用时间戳来初始化随机种子。

func main() {
   maxNum := 100
   rand.Seed(time.Now().UnixNano())
   secretNumber := rand.Intn(maxNum)
   fmt.Println("The secret number is ", secretNumber)
}

在线字典

抓包

image.png

代码生成

CurlConvert image.png

OKTools

image.png

SOCKS5代理

Socks5代理原理

image.png

TCP Echo Server

有点难度,需要补充相关知识

四、课后个人总结:

今天是青训营开课的第一天,学习了Go语言入门课程,掌握了Go语言的开发环境、基础语法和标准库,基础部分因为有其他语言的基础,学起来比较轻松。然后通过三个小项目的实践(其实是前两个~),加深了对Go语言的理解和运用。希望能够坚持下来,加油!

五、引用参考: