Go开发环境安装以及快速入门
-
-
- 一、环境配置
-
- [1.1 go开发工具](#1.1 go开发工具)
- [1.2 go sdk下载](#1.2 go sdk下载)
- [3.1 go相关命令行](#3.1 go相关命令行)
- 二、快速入门
-
- [2.1 创建项目](#2.1 创建项目)
- [2.2 创建`.go`程序文件](#2.2 创建
.go
程序文件) - [2.3.配置 mod 的开启与关闭](#2.3.配置 mod 的开启与关闭)
- [2.4 用 GoLand 写第一份代码](#2.4 用 GoLand 写第一份代码)
- 2.5.代码静态检测(此部分非必要)
- 三、初步了解
-
- [3.1 代码解释以及编译](#3.1 代码解释以及编译)
- [3.2 Golang执行流程](#3.2 Golang执行流程)
- [3.3 语法注意事项](#3.3 语法注意事项)
- [3.4 注释](#3.4 注释)
- [3.5 代码风格](#3.5 代码风格)
- [3.6 API](#3.6 API)
-
go sdk下载:https://golang.google.cn/dl/
golang中文社区:https://studygolang.com/dl
中文社区文档 https://studygolang.com/pkgdoc
一、环境配置
1.1 go开发工具
- goland
- IDEA golang插件
- vscode
推荐使用goland
GoLand官网下载:https://www.jetbrains.com/go/download/#section=windows
1.2 go sdk下载
下载安装后,windows上会自动添加到环境变量,如果使用goland,会默认找到sdk的位置。
使用Installer Windows 可以直接软件安装,快一些,方便,而且自动配置环境变量,如果想自己设置也可以
具体参考下面的是链接:
Go GOROOT 与 GOPATH 介绍
GOROOT:Go 语言安装根目录的路径,也就是 GO 语言的安装路径。
GOPATH:若干工作区目录的路径。是我们自己定义的工作空间。
GOBIN:GO 程序生成的可执行文件(executable file)的路径。
设置 GOPATH得作用
你可以把 GOPATH 简单理解成 Go 语言的工作目录,它的值是一个目录的路径,也可以是多个目录路径,每个目录都代表 Go 语言的一个工作区(workspace)。
我们需要利于这些工作区,去放置 Go 语言的源码文件(source file),以及安装(install)后的归档文件(archive file,也就是以".a"为扩展名的文件)和可执行文件(executable file)。
3.1 go相关命令行
(1) 查看go sdk版本
go
go version
(2) go代码生成exe文件, 执行以下命令会将test.go在当前目录生成test.exe
go
go build test.go
(3) 直接运行结果,不生成exe文件
go
go run test.go
(4) 指定生成文件的名字
go
go build -o sever.exe test.go
(5) 命令行格式化代码
go
gofmt -w test.go
直接运行gofmt test.go只是显示格式化后的代码格式,不写道文件里面
(6) go doc 看api说明
查看内置函数delete的说明
go
go doc builtin.delete
二、快速入门
2.1 创建项目
这里使用GoLand作为开发工具讲解
选择我们的 New Project
,那么我们就会看到如下界面
选择 Go
项目,如果选择带有 GOPATH
标记的则表示将项目默认创建在你配置好的 GOPATH
空间下
在 GoLand 中,一个项目就可以作为一个工作空间,所以选择
Go
则表示要将这个新建的项目作为一个独立的工作空间进行开发
Location
: 表示当前项目的位置
GOROOT
: 表示你GO环境的开发包安装位置,这个如果在环境变量已经配置好的情况下会自动帮你填写,如果没配置建议先配置好环境变量。
Environment
: Go 的一些 mod 可能需要外网下载,因为一些不可描述的原因我们无法访问,因此可以通过配置 GOPROXY 代理来改变代理成国内的下载代理,这个可以暂时先不配置。
想写,可以直接填入:GOPROXY=https://goproxy.cn,direct
创建成功如下:
2.2 创建.go
程序文件
这里我们可以简单尝试一下:
- 创建
Simple application
会得到一个带有简单main
函数的文件,这是一个程序的入口
创建的好的代码如下:
2.3.配置 mod 的开启与关闭
在我们的本地环境中我们可以通过指令来配置 go mod 模块管理的开启与关闭,而在我们的 Goland 中我们也可以通过设置来改变 go mod 的启用,我们在使用 Goland 的时候可以开启 go mod
- Preferences ->Go ->Go Modules 进行设置,如下:
关于代理: 因我我们众所周知一些原因,所以代理可以修改为国内,方便获取资源,留下以下几种资源地址
注意:代理修改完,重启 GoLand 生效
阿里云:https://mirrors.aliyun.com/goproxy/
nexus 社区提供的:https://gonexus.dev
goproxy.io 的:https://goproxy.io/
官方提供的:https://proxy.golang.org
七牛云赞助支持的:https://goproxy.cn
是否使用 go mod 的区别:
- 开启mod:go env -w GO111MODULE=on ,会将包下载到 gopath 下的 pkg 下的 mod 文件夹中
- 关闭mod:go env -w GO111MODULE=off ,会将包下载到 gopath 下的 src 下
- go env GO111MODULE=auto 只有当前目录在 GOPATH/src 目录之外而且当前目录包含 go.mod 文件或者其子目录包含 go.mod文件才会启用rticle/details/128001422
2.4 用 GoLand 写第一份代码
在刚刚我们已经新建了一个带有 main
的 .go
文件,那么我们接下来就需要在 main()
中写下我们的第一份代码, Goland 是相对比较智能的,很多基础包不需要你去写 import
,你只需要直接写你要的工具模块,它就会自动帮你导入相关的模块。
- 点击运行,右上角的这个标志,或者,右键运行
- 运行结果:
2.5.代码静态检测(此部分非必要)
我们之前有说过,Go 语言对于代码的检测和格式是有自己官方的统一规范和自动化的,所以就减少了出现不同程序不同的代码风格导致相互之间可阅读性降低的问题。
使用 GoLand 编写 Go 代码时,可以配合 gofmt + goimports + golangci-lint 在保存时完成对代码的格式化和质量检测。
- 开启
go fmt:
在每次保存代码文件时自动格式化代码。
File > Settings > Tools > File Watchers > + > go fmt
- 开启
goimports
在每次保存代码时自动添加缺失的和删除未引用的包。
File > Settings > Tools > File Watchers > + > goimports
如果遇到 `tools` 工具没安装, `Goland` 则会提醒你安装
如果安装失败,则可能是国内代理的原因,请修改代理(这里不再重复赘述,可参考前一篇文章内容)
- **开启
golandci-lint:
** 开启 golangci-lint 可以对代码进行静态检查,比如报告函数行数超标、文件行数超标等来帮助规范代码
File > Settings > Tools > File Watchers > + > golangci-lint
- 工具安装完毕!!!
三、初步了解
3.1 代码解释以及编译
前面的代码每一行详解如下
下一步,我们进行编译
- 来到文件的源文件下
- 打开cmd,运行go build test.go ,然后会发现生成了一个.exe文件,可以直接运行,会发现输出对应的内容
3.2 Golang执行流程
执行流程分析:
上述两种执行流程的方式区别
- 在编译时,编译器会将程序运行依赖的库文件包含在可执行文件中,所以,可执行文件
变大了很多。
-
如果我们先编译生成了可执行女件,那么我们可以将该可执行文件拷贝到没有go开发环境的机器上,仍然可以运行
-
如果我们是直接go run go源代码,那么如果要在另外一个机器上这么运行,也需要go开发环境,否则无法执行。
-
go run运行时间明显要比第一种方式 长一点点
-
编译后的文件可以另外指定名字:
3.3 语法注意事项
(1)源文件以"go"为扩展名。
(2)程序的执行入口是main()函数。
(3)严格区分大小写。
(4)方法由一条条语句构成,每个语句后不需要分号(Go语言会在每行后自动加分号),这也体现出Golang的简洁性。(其实可以自己写分号,例如:一行某一段结束价格分号,再接其他的也是OK的,这样相当于两条语句)
(5)Go编译器是一行行进行编译的,因此我们一行就写一条语句,不能把多条语句写在同一个,否则报错
(6)定义的变量或者import的包如果没有使用到,代码不能编译通过。
(7)大括号都是成对出现的,缺一不可
3.4 注释
Go支持c语言风格的**/* */块注释,也支持c++风格的 //**行注释。行注释更通用,块注释主要用于针对包的详细说明或者屏蔽大块的代码
(1)行注释 // GoLand快捷键:ctrl+/ 再按一次取消注释
(2)块注释(多行注释) / * */ GoLand快捷键:ctrl+shift+/ 再按一次取消注释
注意:块注释中不可以嵌套块注释
提示:官方推荐使用行注释 //
3.5 代码风格
-
注意缩进
- 向后缩进:tab
- 向前取消缩进:shift+tab
可以通过命令行实现:
-
gofmt test.go(仅展示数据,不改变原数据)
-
gofmt -w test.go(更改原代码的缩进情况)
**GoLand软件自带快捷键:Ctrl+Alt+L **
-
成对编程 {} () "" ''
-
运算符两边加空白
- 注释:官方推荐行注释//
- 以下代码是错误的:
-
行长约定:
一行最长不超过80个字符,超过的请使用换行展示,尽量保持格式优雅
- 错误方式:
- 正确方式(使用
,
进行拼接)
3.6 API
Go语言提供了大量的标准库,因此 google 公司也为这些标准库提供了相应的API文档,用于告诉开发者如何使用这些标准库,以及标准库包含的方法。官方位置:https://golang.org
Golang中文网在线标准库文档: https://studygolang.com/pkgdoc
函数对应的源码查看:
也可以使用离线API:这里略~~~~
97726997615)]
Go语言提供了大量的标准库,因此 google 公司也为这些标准库提供了相应的API文档,用于告诉开发者如何使用这些标准库,以及标准库包含的方法。官方位置:https://golang.org
Golang中文网在线标准库文档: https://studygolang.com/pkgdoc
[外链图片转存中...(img-XYf2WQpH-1697726997615)]函数对应的源码查看:
[外链图片转存中...(img-RMsNmwtC-1697726997615)]
也可以使用离线API:这里略~~~~
这样就成功入门啦,冲冲冲!!!!!!!!!!!!!!!!!!!!!!!!!!!!