DAY-01 熟练 Go 语言基础 | 青训营笔记

150 阅读4分钟

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

一、了解和认识 Go

(一)Go 语言的来源

Go 语言源代码开源,由谷歌团队成员开发,从2007年末发起项目,并于2009年11月开源,目前 Go 语言拥有一个活跃的社区。

(二)Go 语言的特色

学习Go,还要了解Go语言的特点,这样我们就知道为什么要选择Go

  1. 编译代码迅速、简洁
  2. 内置内存管理、数组安全、垃圾回收等功能
  3. 高性能、高并发
  4. 工具链完整、跨平台、标准库丰富 在了解了 Go 具有这么多特色之后,想必很多人都会把目光都投向这一种上手友好且功能丰富的语言上。

(三)为什么字节跳动使用Go?

  1. 其他语言不适合: Python性能及版本依赖问题、C++不适合在线Web业务、团队成员在早期非Java开发背景
  2. Go基础简单效率高: Go入门简单、开发效率高
  3. Go内置框架方便: Go内部RPC和HTTP框架的推广

二、安装和配置 Go

(一)安装和下载 Go 环境

Go 语言安装起来较为简单,可以通过从官网或镜像网站下载安装包自动配置环境或手动安装。

(二)配置 Go 环境变量

若手动安装Go,可能还需要配置环境变量。 电脑右键打开“属性”—“高级系统设置”——“高级”——“环境变量”:

  1. 设置 GOROOT 点击“新建”系统变量,设置变量名GOROOT,变量值为Go的安装目录。

  2. 设置 GOPATH 点击“新建”系统变量,设置变量名GOPATH,变量值为准备为 Go 存放库文件等文件的目录。

(三)安装集成开发环境或VSCODE

常用的IDE有Jetbrains的 GoLandVSCode

  • 个人推荐使用Goland

三、Go 基础语法

变量

循环

分支

if-else

switch

数据类型

数组

切片

map

range

结构体

函数

指针

结构体方法

错误处理

四、Go 标准库

Go 内置封装了强大且非常实用的标准库,为开发者提供了模块和公共接口,包含 I/O 操作、文本处理、图像、密码学、网络和分布式应用程序等方面的库,支持常见的几种标准化的文件格式和编解码协议。

strings 库——字符串操作

标准库说明

  • 标准库文档(Windows): 文档链接
  • 引用标准库import "strings"

常见方法的用法


encoding/json 库——JSON 处理

标准库说明

该标准库包含对Json数据操作的相关方法。

  • 标准库文档(Windows): 文档链接
  • 引用标准库import "encoding/json"

常见方法的用法

1.序列化:链接

将数据转换为 json 数据。

func Marshal(v any) ([]byte, error)

2.反序列化:链接

将 json 数据转换为数据。

func Unmarshal(data []byte, v any) error


time 库——时间处理

标准库说明

该标准库包含对时间的格式化结构体 Time 以及对其操作的相关方法,可用于解决项目中对于时间处理的大部分需求,必要时阅读标准库文档以获取详细方法及参数。

  • 标准库文档(Windows): 文档链接
  • 引用标准库import "time"

常见方法的用法

1.获取当前时间:链接

返回结构体 年-月-日 时-分-秒-纳秒,即 yyyy-mm-dd hh:mm:ss + nsec

func Now() Time

2.拼接格式化时间数据:链接

在已知时间的年月日、时分秒情况下可以通过该方法生成格式化后的时间。

func Date(year int, month Month, day, hour, min, sec, nsec int, loc * Location) Time

3.将时间字符串转换为时间数据:链接

通过参考layout格式示例,将value字符串转为Time结构体数据。(不知道Layout怎么写请见官方文档)

func Parse(layout, value string) (Time, error)


strconv 库——数字解析

标准库说明

该标准库包含对Json数据操作的相关方法。

  • 标准库文档(Windows): 文档链接
  • 引用标准库import "strconv"

常见方法的用法

1.数字字符串转整型数据:链接

传入数字字符串,返回对应的整型数据

func Atoi(s string) (i int, err error)

2.整型数据转数字字符串:链接

传入整型数据,返回对应的数字字符串

func Itoa(i int) string

3.布尔字符串转布尔类型:链接

传入布尔值字符串,返回对应的布尔型数据

func ParseBool(str string) (bool, error)

4.浮点数字字符串转浮点型数据:链接

传入浮点型数字字符串,返回对应的浮点型数据

func ParseFloat(s string, bitSize int) (float64, error)


os 库——系统/进程信息

标准库说明

该标准库包含对命令行的调用

  • 标准库文档(Windows): 文档链接
  • 引用标准库import "os"import "os/exec"

常见方法的用法

1.获取命令参数:

var Args []string

2. EXEC模块Command函数:exec模块

调用OS命令行执行指定命令

func Command(name string, arg ...string) * Cmd