Go语言开发环境搭建
一、Windows下安装
安装Go开发包
-
官网下载Go语言开发包,安装方法就是next,除了安装位置选择
-
安装目录选定一个好记的。尽量不要放在C盘中,除非你盘空间很大,完全够用。此路径需要自己记住,需要时可以很容易的找到。
-
安装完成后输入
go version
查看go版本号 -
也可以使用
go
来测试,只要显示一大堆东西就是安装成功,这是野路子方法,不推荐使用。
GOPATH
- 在自己电脑上新建一个目录,例如E:\Go(存放我编写的Go语言代码)
- 在环境变量里,新建一项:
GOPATH:D:\Go
- 在
D:\Go
下新建三个文件夹,分别是:bin
、pkg
、src
- 把
D:\GO\bin
这个目录添加到PATH
这个环境变量的后面- Win7是英文的;分隔
- Win10是单独一行
- 我们的电脑上在安装完go包之后是默认生成了默认的环境变量的,也就是说GOPATH是有默认值的,通常是
%USERPROFILE%/go
,把这一项删掉,自己按照环境变量的添加方式重新添加一个自己配制的环境变量就可以了
二、Linux下安装
如果不是要在Linux平台敲go代码就不需要在Linux平台安装Go,我们开发机上写好的go代码只需要跨平台编译好之后就可以拷贝到Linux服务器上运行了,这也是go程序跨平台易部署的优势。
我们在版本选择页面选择并下载好go1.14.1.linux-amd64.tar.gz
文件:
wget https://dl.google.com/go/go1.14.1.linux-amd64.tar.gz
将下载好的文件解压到/usr/local
目录下:
tar -zxvf go1.14.1.linux-amd64.tar.gz -C /usr/local # 解压
如果提示没有权限,加上sudo
以root用户的身份再运行。执行完就可以在/usr/local/
下看到go
目录了。
配置环境变量: Linux下有两个文件可以配置环境变量,其中/etc/profile
是对所有用户生效的;$HOME/.profile
是对当前用户生效的,根据自己的情况自行选择一个文件打开,添加如下两行代码,保存退出。
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
修改/etc/profile
后要重启生效,修改$HOME/.profile
后使用source命令加载$HOME/.profile
文件即可生效。 检查:
~ go version
go version go1.14.1 linux/amd64
三、Mac下安装
-
下载可执行文件版,直接点击下一步安装即可,默认会将go安装到
/usr/local/go
目录下。 -
安装过程执行完毕后,可以打开终端窗口,输入
go version
命令,查看安装的Go版本。
四、GOROOT和GOPATH
GOROOT
和GOPATH
都是环境变量,其中GOROOT
是我们安装go开发包的路径,而从Go 1.8版本开始,Go开发包在安装完成后会为GOPATH
设置一个默认目录,参见下表。
GOPATH在不同操作系统平台上的默认值
平台 | GOPATH默认值 | 举例 |
---|---|---|
Windows | %USERPROFILE%/go | C:\Users\用户名\go |
Unix | $HOME/go | /home/用户名/go |
我们只需要记住默认的GOPATH路径在哪里就可以了,并且默认情况下 GOROOT
下的bin目录及GOPATH
下的bin目录都已经添加到环境变量中了,我们也不需要额外配置了。
GOPROXY
Go1.14版本之后,都推荐使用go mod
模式来管理依赖环境了,也不再强制我们把代码必须写在GOPATH
下面的src目录了,你可以在你电脑的任意位置编写go代码。(网上有些教程适用于1.11版本之前。)
默认GoPROXY配置是:GOPROXY=https://proxy.golang.org,direct
,由于国内访问不到https://proxy.golang.org
,所以我们需要换一个PROXY,这里推荐使用https://goproxy.io
或https://goproxy.cn
。
可以执行下面的命令修改GOPROXY:
go env -w GOPROXY=https://goproxy.cn,direct
注:执行完此命令需要关闭编译器(一般指VSCode)后才会生效
五、Go开发的编译器
Go采用的是UTF-8编码的文本文件存放源代码,理论上使用任何一款文本编辑器都可以做Go语言开发,这里推荐使用VS Code
和Goland
。 VS Code
是微软开源的编辑器,而Goland
是jetbrains出品的付费IDE。
但是在大公司中,尤其是连接外网公司尽可能的不要使用破解版的IDE,容易出现不必要的版权问题
推荐使用VSCode,或者Vim编译器,但是由于vim上手慢所以使用VSCode是首选,当然还有其他很多种编译器可以选择,这里不做过多的解释,详情请找度娘
VSCode介绍
VSCode
全称Visual Studio Code
,是微软公司开源的一款免费现代化轻量级代码编辑器,支持几乎所有主流的开发语言的语法高亮、智能代码补全、自定义热键、括号匹配、代码片段、代码对比 Diff、GIT 等特性,支持插件扩展,支持 Win、Mac 以及 Linux平台。
虽然不如某些IDE功能强大,但是它添加Go扩展插件后已经足够胜任我们日常的Go开发。
下载安装VSCode
VSCode
官方下载地址:https://code.visualstudio.com/Download
三大主流平台都支持,请根据自己的电脑平台选择对应的安装包。
配置
-
安装中文简体插件
点击左侧菜单栏最后一项
管理扩展
,在搜索框
中输入chinese
,选中结果列表第一项,点击install
安装。安装完毕后右下角会提示
重启VS Code
,重启之后你的VS Code就显示中文啦! -
基本快捷键
- Ctrl + Shift + E 文件资源管理器
- Ctrl + Shift + F 跨文件搜索
- Ctrl + Shift + G 源代码管理
- Ctrl + Shift + D 启动和的调试
- Ctrl + Shift + X 管理扩展
- Ctrl + Shift + M 查看错误可警告
- Ctrl + Shift + P 执行命令的输入框
- Ctrl + ` 切换集成终端
-
变更编辑器主题:依次点击
设置->颜色主题
-
安装Go扩展工具
现在我们要为我们的VS Code编辑器安装
Go
扩展插件,让它支持Go语言开发,直接在管理扩展中搜索下载第一个。
Go语言开发工具包
Go语言开发的时候为我们提供了诸如代码提示、代码补全等功能,但是执行下载时由于是国外的网站链接,下载会失败,所以需要我们配置国内的镜像源,这个配置可以在编译器中的控制台执行,也可以直接在cmd中执行
设置GOPROXY
,打开终端执行以下命令:
go env -w GOPROXY=https://goproxy.cn,direct
Windows平台按下Ctrl+Shift+P
,Mac平台按Command+Shift+P
,这个时候VS Code界面会弹出
我们在这个输入框中输入>go:install
,下面会自动搜索相关命令,我们选择Go:Install/Update Tools
这个命令,按下图选中并会回车执行该命令(或者使用鼠标点击该命令),然后等待所有工具安装完成
配置代码片段快捷键
-
按
Ctrl/Command+Shift+P
,按下图输入>snippets
,选择命令并执行 -
然后在弹出的窗口点击选择
go
选项: -
然后可以进行修改
"这里放个名字":{ "prefix": "这个是快捷键", "body": "这里是按快捷键插入的代码片段", "description": "这里放提示信息的描述" } # 例子: { // Place your snippets for go here. Each snippet is defined under a snippet name and has a prefix, body and // description. The prefix is what is used to trigger the snippet and the body will be expanded and inserted. Possible variables are: // $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. Placeholders with the // same ids are connected. // Example: // "Print to console": { // "prefix": "log", // "body": [ // "console.log('$1');", // "$2" // ], // "description": "Log output to console" // } "println":{ "prefix": "pln", "body":"fmt.Println(\"$0\")", "description": "println" }, "printf":{ "prefix": "plf", "body": "fmt.Printf(\"$0\")", "description": "printf" }, "print":{ "prefix": "plt", "body": "fmt.Print(\"$0\")", "description": "print" } }
其中
$0
表示最终光标停留的位置。 举个例子,我这里创建了两个快捷方式,一个是输入pln
就会在编辑器中插入fmt.Println()
代码;输入plf
,就会插入fmt.Printf("")
代码。 然后可以打开文件测试一下,敲击plt或pln选中后按回车
六、Go语言结构
1.go语言的基本目录结构
一般的,一个Go项目在GOPATH下,会有如下三个目录:
bin:bin存放编译后的可执行文件
pkg:pkg存放编译后的包文件
src:src存放项目源文件
2.go语言文件的基本结构
import "fmt"
// 函数外只能防止标识符(变量\常量\函数\类型)的声明
// fmt.Println("Hello") // 非法
// 程序的入口函数
func main() {
fmt.Println("Hello world!")
}
七、编译
使用
go build
- 在项目目录下执行
go build
- 在其他路径下执行
go build
, 需要在后面加上项目的路径(项目路径从GOPATH/src后开始写起,编译之后的可执行文件就保存在当前目录下) - 自定义可执行文件的名字
go build -o hello.exe
go run
像执行脚本文件一样执行Go代码
go install
go install
分为两步:
1. 先编译得到一个可执行文件
2. 将可执行文件拷贝到`GOPATH/bin`
交叉编译
Go支持跨平台编译
例如:在windows平台编译一个能在linux平台执行的可执行文件
SET CGO_ENABLED=0 // 禁用CGO
SET GOOS=linux // 目标平台是linux
SET GOARCH=amd64 // 目标处理器架构是amd64
执行go build
Mac平台交叉编译:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build