【go语言学习】go语言开发环境搭建

一、下载和安装

官方网站 https://www.golang.org/
国内网站 https://golang.google.cn/

二、配置环境变量

1、gopath

GOPATH是早期的设置方式,将工作目录设置GOPATH到全局环境变量。

GOROOT:C:/go     // go语言的安装地址
GOPATH:E:/gopath // go的工作目录
PATH:C: /go/bin  // 将环境变量加入路径

GOPATH目录结构:

goWorkSpace  // (goWorkSpace为GOPATH目录)
  -- bin     // golang编译可执行文件存放路径,可自动生成。
  -- pkg     // golang编译的.a中间文件存放路径,可自动生成。
  -- src     // 源码路径。按照golang默认约定,go run,go install等命令的当前工作路径(即在此路径下执行上述命令)。

这种方式在实际操作中会有如下问题:
如果我们把所有项目都放在同一个GoPath的src包下,那么项目的结构就会变得非常混乱,难以管理。
如果我们建立不同的GoPath来管理我们的项目,那么不同GoPath下的src中下载大量重复的第三方依赖包,这同样会占用大量的磁盘空间。

2、gomod

go mod 正是为了解决上述问题(并不单单是上述问题,还有依赖引用问题)。

GoModule就是一个用来取代GoPath的Golang的工作空间。
GoPath我们用来存放我们从网上拉取的第三方依赖包。
GoModule我们用来存放我们自己的Golang项目文件。

通过以下命令查看go环境配置:

go env

通过以下命令开启GoModule

$env:GO111MODULE = "on"

通过以下命令设置代理服务

$env:GOPROXY="https://goproxy.cn",direct

进入到 myproject目录下执行 go mod init myproject 就会创建出一个go.mod文件,myproject即为一个GoModule目录。当我们需要引入GoPath目录下的第三方依赖包的时候,只需要在go.mod目录下添加依赖名称,GoModule就会自动帮我们把第三方依赖包下载到GoPath目录下。

// module 语句指定包的名称
module myproject

go 1.15

// require 语句指定的依赖项模块
require (
	github.com/astaxie/beego v1.12.1
	github.com/go-sql-driver/mysql v1.5.0
)

// replace 语句可以替换依赖项模块 
// 由于某些已知的原因,并不是所有的package都能成功下载,比如:golang.org下的包。
// modules 可以通过在 go.mod 文件中使用 replace 指令替换成github上对应的库。
replace (
	golang.org/x/crypto v0.0.0-20190313024323-a1f597ede03a => github.com/golang/crypto v0.0.0-20190313024323-a1f597ede03a
)

// exclude 语句可以忽略依赖项模块
exclude (
	github.com/satori/go.uuid v1.2.0
)

go mod 命令:

命令 描述
go mod init 在当前目录项目下初始化mod
go mod tidy 拉取依赖的模块,移除不用的模块
go mod vendor 将依赖复制到vendor下
go mod edit 编辑go.mod
go mod verify 验证依赖是否正确

三、配置开发工具

1、 下载vscode

vscode下载地址https://code.visualstudio.com/

2、 安装中文汉化插件chinese和第三方go语言插件

再次运行vscode或运行项目时会提示我们安装go语言插件的依赖包,install all都可以自动安装成功。

四、第一个golang程序

在F:go_project目录创建main.go,输入代码:

package main

import "fmt"

func main() {
	fmt.Println("hello world")
}

可以通过以下三种方式执行go程序:
1、 通过cmd命令提示符进入该目录,执行go build main.go会在当前目录生成main.exe可执行文件,控制台执行./main.exe,可在终端输出hello world
2、 通过cmd命令提示符进入该目录,执行go run main.go可运行go程序,在终端输出hello world
3、 通过cmd命令提示符进入该目录,执行go install main.go可在GOPATH下的bin文件夹生成main.exe,在任意终端下(path下已添加GOPATH下的bin目录)执行main.exe,可在终端输出hello world

原文地址:https://www.cnblogs.com/everydawn/p/13848797.html