1 Go语言特性
- 自动垃圾回收
- 更丰富的内置类型
- 函数多返回值
- 错误处理
- 匿名函数和闭包
- 类型和接口
- 并发编程
- 反射
- 语言交互性
2语言结构
- 包声明
- 引入包
- 函数
- 变量
- 语句 & 表达式
- 注释
package main
import "fmt"
func main() {
/* Always Hello, World! */
fmt.Println("Hello, World!")
}
2.1 解释:
- package main定义了包名。必须在源文件中非注释的第一行指明这个文件属于哪个包。
package main表示一个可独立执行的程序,每个Go应用程序都包含一个名为main的包
- package main定义了包名。必须在源文件中非注释的第一行指明这个文件属于哪个包。
- import "fmt" 告诉编译器程序运行需要用fmt包
- func main()是程序开始执行的函数,main函数是每一个可执行程序所必须包含的,一般来说都是在启动后第一个执行的函数(如果有init()函数则会先执行该函数)。
- {}中"{"不可以单独放一行。
- 注释在程序执行时将被忽略。//单行注释,/..../多行注释也叫块注释,不可以嵌套使用,一般用于包的文档描述或注释成块的代码片段。
-
fmt.Println(...)将字符串输出到控制台,并在最后自动增加换行字符\n。用fmt.Print("Hello, World!\n")可以得到相同的结果。
-
2.2 测试init
除了main函数外,还有另外一个特殊的init函数,先于main函数执行,实现包级别的一些初始化操作。
init函数的主要作用:
- 初始化不能采用初始化表达式初始化的变量。
- 程序运行前的注册。
- 实现sync.Once功能。
- 其他
init函数的主要特点:
- init函数先于main函数自动执行,不能被其他函数调用;
- init函数没有输入参数、返回值;
- 每个包可以有多个init函数;
- 包的每个源文件也可以有多个init函数,这点比较特殊;
- 同一个包的init执行顺序,golang没有明确定义,编程时要注意程序不要依赖这个执行顺序;
- 不同包的init函数按照包导入的依赖关系决定执行顺序。
golang程序初始化
golang程序初始化先于main函数执行,由runtime进行初始化,顺序如下:
- 初始化导入的包(包的初始化顺序并不是按导入顺序执行的,runtime需要解析包依赖关系,没有依赖的包最先初始化,与变量初始化依赖关系类似);
- 初始化包作用域的变量(该作用域的变量的初始化按照runtime解析变量依赖关系,没有依赖的变量最先初始化)
package main
import "fmt"
func init() {
// 初始化函数
fmt.Println("初始化函数")
}
func main() {
/* Always Hello, World! */
fmt.Println("Hello, World!")
}
初始化顺序:变量初始化->init()->main()
3 开发环境配置
3.1 IDE选择
vscode(推荐免费)地址:https://code.visualstudio.com/
goland(不推荐收费)地址:https://blog.jetbrains.com/go/
3.2 安装Go 语言包
下载地址:https://studygolang.com/dl
根据自己系统版本,酌情选择
3.3 配置
- 不管是哪个系统,需要配置go安装环境到path环境变量里面。
- goland只需要选择go对应的sdk配置即可,也就是把go安装的路径添加进去,使用安装的go环境进行编译,不需要安装任何额外插件。
- vscode需要安装额外插件,在插件市场里面直接搜索go,随后进行安装即可,在安装的时候容易出现下载失败问题,此时需要更换为国内源,如下设置:
要求Go版本>=1.13
windows设置:
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
MacOS or Linux
export GO111MODULE=on
export GOPROXY=https://goproxy.cn
参照: Windows下安装
双击你下载的安装包(go1.13.4.windows-amd64.msi),一直点击“Next”即可,注意有一步要求选择安装路径,为了后面教程好说明请不要更改。
然后点“Install”安装
这个过程请等待
点击“Finish”完成安装
怎么来验证我们的安装是成功的呢?按windows键+R,输入:cmd回车
在出现的命令行窗口输入:go version回车,这时会显示你当前安装的go版本,说明咱们已经安装成功了
安装VSCode
1、下载
打开官网https://code.visualstudio.com/Download,进入下载页后,找到下载的地方如下图:
win10 64 bit点击第一处红箭头指向处下载,CentOS 64 bit点第二处箭头指向处下载
2、windows下安装
双击你下载的安装程序,然后按下图顺序一路点击
安装VSCode中文包
如果你和笔者一样英文很low,你可以选择安装中文语言包
先可以点左侧第五个图标,或按快捷键Ctrl+Shift+X 打开Extensions,在搜索框里输入:language,中文(简体)的包,然后点“Install”安装,如下图
重新打开VSCode,这时已经是中文的啦
安装go插件
打开Extensions,输入go,安装作者Microsoft的这个
安装vscode-go
对于Visual Studio Code开发工具,有一款优秀的GoLang插件,它的主页为:https://github.com/microsoft/vscode-go
这款插件的特性包括:
Colorization 代码着彩色
Completion Lists 代码自动完成(使用gocode)
Snippets 代码片段
Quick Info 快速提示信息(使用godef)
Goto Definition 跳转到定义(使用godef)
Find References 搜索参考引用(使用go-find-references)
File outline 文件大纲(使用go-outline)
Workspace symbol search 工作区符号搜索(使用 go-symbols)
Rename 重命名(使用gorename)
Build-on-save 保存构建(使用go build和go test)
Format 代码格式化(使用goreturns或goimports或gofmt)
Add Imports 添加引用(使用 gopkgs)
Debugging 调试代码(使用delve)
集成安装命令,拷贝到cmd窗口就可完成安装:
go get -u -v github.com/nsf/gocode
go get -u -v github.com/rogpeppe/godef
go get -u -v github.com/golang/lint/golint
go get -u -v github.com/lukehoban/go-find-references
go get -u -v github.com/lukehoban/go-outline
go get -u -v sourcegraph.com/sqs/goreturns
go get -u -v golang.org/x/tools/cmd/gorename
go get -u -v github.com/tpng/gopkgs
go get -u -v github.com/newhook/go-symbols
测试安装
1、在GoPath中新建一个文件夹GoHello,打开VSCode打开这个文件夹,新建一个文件main.go,在文件中输入以下代码
package main
import (
"fmt"
)
func main() {
fmt.Println("hello world")
}
如果右下角有提示你有些插件需要更新,你可以不面要理会,或直接点更新,如图提示:Your version of go-outline appears to be out of date. Please update for an improved experience.有疑问加站长微信联系(非本文作者)