1. 下载go安装包

官网下载go安装包: https://golang.google.cn/dl/

下载go二进制包go1.16.2.darwin-amd64.tar.gz

wget -c https://golang.google.cn/dl/go1.16.2.darwin-amd64.tar.gz

2. 安装go

安装目录: /usr/local/go

sudo tar -xzvf go1.16.2.darwin-amd64.tar.gz -C /usr/local
cd /usr/local/go

查看go的安装目录:

cd /usr/local/go
ls

3. 配置环境变量

编辑~/.bash_profile文件:

vim ~/.bash_profile

追加以下内容:

export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
export GOPATH=$HOME/go

注意, GOPATH配置为你的工作区目录

编辑~/.zshrc文件:

vim ~/.zshrc

追加以下内容:

source ~/.bash_profile

使终端对以上配置的环境变量生效:

source ~/.zshrc

4. 检测go开发环境是否安装成功

$ go env

省略...

GOPATH="/Users/xx/go"
GOROOT="/usr/local/go"

省略...

其中,

  • GOPATH: go工作区, 即编写代码存放的目录
  • GOROOT: go的安装目录

查看版本:

$ go version
go version go1.16.2 darwin/amd64

GOPATH工作区目录下, 一般有3个目录, 分别是

  • bin: 存储可执行bin文件
  • pkg: 编译完成的文件
  • src: 源代码文件

$GOPATH/pkg目录在执行go get -u 库名会自动创建, src目录不存在则需要手动创建, 示例如下:

mkdir -p $GOPATH/src
mkdir -p $GOPATH/bin

$GOPATH/src目录下, 创建新项目进行开发

5. 设置go国内模块代理

参考: https://goproxy.cn/

编辑~/.bash_profile:

vim ~/.bash_profile

追加以下内容:

export GO111MODULE=on
export GOPROXY=https://goproxy.cn

使以上配置的环境变量生效:

source ~/.zshrc

至此, go开发环境安装成功。

6. 创建go的hello项目

创建go的hello项目:

$ cd $GOPATH/src
$ mkdir hello
$ cd hello
$ go mod init zhuxiongxian.com/hello
go: creating new go.mod: module zhuxiongxian.com/hello
go: to add module requirements and sums:
	go mod tidy
$ go mod tidy

其中,

  • go mod tidy: 增加缺少的module, 删除无用的module
  • go get/go run/go build会自动下载依赖

创建hello.go文件:

vim hello.go

hello.go文件内容如下:

package main

import "fmt"

func main() {
    fmt.Println("Hello, World!")
}

运行go的hello项目:

$ cd cd $GOPATH/src/hello
$ go run .
Hello, World!

7. 安装gin框架

go get -u github.com/gin-gonic/gin

在代码中导包:

import "github.com/gin-gonic/gin"

8. 创建gin的demo项目

cd $GOPATH/src
mkdir gin-demo
cd gin-demo
vim example.go

example.go文件内容:

package main

import "github.com/gin-gonic/gin"

func main() {
	r := gin.Default()
	r.GET("/ping", func(c *gin.Context) {
		c.JSON(200, gin.H{
			"message": "pong",
		})
	})
    // r.Run() // listen and serve on 0.0.0.0:8080 (for windows "localhost:8080")
    r.Run(":10240")
}
go mod init zhuxiongxian.com/gin-demo
go mod tidy
go run example.go
或
go run .

访问: http://0.0.0.0:10240/ping

{
    "message": "pong"
}