Go语言入门 | 青训营笔记

124 阅读4分钟

·这是我参与「第三届青训营 -后端场」笔记创作活动的的第1篇笔记

前置要求

安装Go环境

首先下载并安装GoLang环境

  • 访问 GoLang官网 ,点击 Download ,下载对应平台安装包,安装即可

  • 如果无法访问上述网址,可以改为访问 studygolang.com/dl 下载安装

  • 如果访问 github 速度比较慢,建议配置 go mod proxy,参考 goproxy.cn/ 里面的描述配置,下载第三方依赖包的速度可以大大加快

安装完成之后需要配置环境变量,可以不需要进入Go安装目录下的bin目录去运行Go命令

  • Windows系统需要在环境变量中设置GoRoot(Go安装目录),GoPath(Go项目路径),并将GoRootGoPath加入到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数据类型可以更方便的在网络中传输,冗余字符较少。