·这是我参与「第三届青训营 -后端场」笔记创作活动的的第1篇笔记
前置要求
安装Go环境
首先下载并安装GoLang环境
-
访问 GoLang官网 ,点击 Download ,下载对应平台安装包,安装即可
-
如果无法访问上述网址,可以改为访问 studygolang.com/dl 下载安装
-
如果访问 github 速度比较慢,建议配置 go mod proxy,参考 goproxy.cn/ 里面的描述配置,下载第三方依赖包的速度可以大大加快
安装完成之后需要配置环境变量,可以不需要进入Go安装目录下的bin目录去运行Go命令
-
Windows系统需要在环境变量中设置
GoRoot(Go安装目录),GoPath(Go项目路径),并将GoRoot、GoPath加入到Path中 -
在GoPath路径下需要创建src目录,将所有项目代码都存放在src目录下。但是在Go v11之后,可以使用Go mod包管理工具,这样就可以在任意位置存放项目。开启Go mod 需要在Go的环境配置中开启(在cmd中运行命令
go env -w GO111MODULE=on)
安装GoLang开发平台
工欲善其事,必先利其器,选择一个合适的、便捷的开发工具也是十分有必要的,比较常用的开发平台有两个,可以根据自己的需求来选取:
-
VSCode: 可以去VSCode官网来下载适合自己电脑的版本,并且是完全免费的,但是需要下载Go插件来简单配置一下才能进行开发和调试 -
GoLand: 可以去Goland官网下载,GoLand是需要付费的,但是可以试用30天。GoLand和VSCode相比就便捷类许多,可以省去非常多的配置,在创建新的项目时也可以省去较多的步骤。
Go中的数据类型
基础类型
-
整型:int,int8,int16,int32,int64,uint,uint8,uint16,uint32,uint64
-
浮点型:float32,float64
-
布尔型:bool
-
字符型:byte,rune
-
字符串:stirng
-
数组:array
-
结构体:struct
引用类型
-
字典:Map
-
切片:Slice
-
管道:Channel
指针
GoLang里面也支持指针。当然,相比 C 和 C++ 里面的指针,支持的操作很有限。指针的一个主要用途就是对于传入参数进行修改。 当你试图通过一个函数来修改一个基础类型变量的值时,你会发现如果直接传入这个参数,那么这个函数并不会生效,因为传入函数的参数实际上是一个拷贝,那也说这个修改操作,是对那个拷贝进行了修改, 并不起作用。如果我们需要起作用的话,那么我们需要把那个类型写成指针类型,那么为了类型匹配,调用的时候会加一个 & 符号。
Go中基础函数库
fmt
在fmt中封装了非常多的字符串格式化以及输入输出相关的函数
-
print会直接将内容输出
-
println,printf等格式化输出函数
-
scan,scanln等读取输入函数
-
Sprintf函数可以将多个变量安照一定的格式进行拼接,并将结果返回】
-
Fprint函数可以向一个 io.Writer 类型的变量写入,通常用于文件的写入
-
···
time
在time库中包含了非常多的时间相关的函数。
-
可以通过Now函数来获取当前的时间
-
可以使用Year,Month等函数来获取当前时间的年月等信息
-
可以使用UNIX等函数将time类型的数据转为int类型。
-
···
math
在math库中包含了非常多的数学相关方法
-
Abs 可以输出一个 float64 类型的数的绝对值
-
Pow 幂次方计算
-
···
strconv
在strconv库中包含了字符串与数字类型相互转换的相关函数
-
Atoi 实现字符串转十进制整数
-
Itoa 实现十进制整数转字符串
-
ParseInt 实现字符串转整型可以指定转换的进制以及位数(8,16,32,64)
-
···
encoding/json
这个库常用的是Marshal、UnMarshal,分别实现的是其他数据类型与json的相互转换。json数据类型可以更方便的在网络中传输,冗余字符较少。