这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天
一、了解和认识 Go
(一)Go 语言的来源
Go 语言源代码开源,由谷歌团队成员开发,从2007年末发起项目,并于2009年11月开源,目前 Go 语言拥有一个活跃的社区。
(二)Go 语言的特色
学习Go,还要了解Go语言的特点,这样我们就知道为什么要选择Go。
- 编译代码迅速、简洁
- 内置内存管理、数组安全、垃圾回收等功能
- 高性能、高并发
- 工具链完整、跨平台、标准库丰富 在了解了 Go 具有这么多特色之后,想必很多人都会把目光都投向这一种上手友好且功能丰富的语言上。
(三)为什么字节跳动使用Go?
- 其他语言不适合: Python性能及版本依赖问题、C++不适合在线Web业务、团队成员在早期非Java开发背景
- Go基础简单效率高: Go入门简单、开发效率高
- Go内置框架方便: Go内部RPC和HTTP框架的推广
二、安装和配置 Go
(一)安装和下载 Go 环境
Go 语言安装起来较为简单,可以通过从官网或镜像网站下载安装包自动配置环境或手动安装。
- Go官网: go.dev//
- 其他镜像网站: studygolang.com/dl
(二)配置 Go 环境变量
若手动安装Go,可能还需要配置环境变量。 电脑右键打开“属性”—“高级系统设置”——“高级”——“环境变量”:
-
设置 GOROOT 点击“新建”系统变量,设置变量名GOROOT,变量值为Go的安装目录。
-
设置 GOPATH 点击“新建”系统变量,设置变量名GOPATH,变量值为准备为 Go 存放库文件等文件的目录。
(三)安装集成开发环境或VSCODE
常用的IDE有Jetbrains的 GoLand 和 VSCode
- 个人推荐使用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