Golang开发笔记

本文主要记录了在 Centos系统上安装Go语言运行环境,同时在VScode中配置我们的开发环境及使用中遇到的一些问题。

安装Go

首先从官网下载Golang语言开发包,这里选择编译的二进制包。

# wget https://golang.google.cn/dl/go1.15.6.linux-amd64.tar.gz
# tar -xvf go1.15.6.linux-amd64.tar.gz  -C /usr/local 

解压成功后会在/usr/local目录下新增一个 go 目录,然后需要配置用户环境变量。Centos系统下一般通过文件 $HOME/.bashrc 配置自定义环境变量,编辑文件内容,在文件末尾添加以下配置并source下,至此我们的Go语言开发包就安装完成了。

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

检查安装后的Go环境参数

# go env
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/service/.cache/go-build"
GOENV="/home/service/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GOMODCACHE="/home/service/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/service/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build150821242=/tmp/go-build -gno-record-gcc-switches"

环境变量说明

变量名说明
GOROOT表示 Go 在电脑上的安装位置,不需要手动配置。
GOBIN表示编译器和链接器的安装位置,默认是 $GOROOT/bin,Go 1.0.3 及以后的版本,可以将它的值设置为空,Go 会使用默认值。
GOPATH项目存放目录,默认采用和 $GOROOT 一样的值, Go 1.1 版本开始,你必须修改为其它路径。它可以包含多个包含 Go 语言源码文件、包文件和可执行文件的路径,而这些路径下又必须分别包含三个规定的目录:src、pkg 和 bin,这三个目录分别用于存放源码文件、包文件和可执行文件。
GOARCH表示目标机器的处理器架构,它的值可以是 386、amd64 或 arm。
GOOS表示目标机器的操作系统,它的值可以是 darwin、freebsd、linux 或 windows。
GOARM专门针对基于 arm 架构的处理器,它的值可以是 5 或 6,默认为 6。
GOMAXPROCS用于设置应用程序可使用的处理器个数与核数。

工作空间(GOPATH)

默认是在$HOME/go,我们也可以通过环境变量指定。

export GOPATH=$HOME/myproject

一般来说GOPATH下面会有三个文件夹:bin、pkg、src,没有的话自己创建。每个文件夹都有其的作用。

  • bin:编译后可的执行文件的存放路径,可以通过环境变量GOBIN指定
  • pkg:编译包时,生成的.a文件的存放路径
  • src:源码路径,一般我们的工程就创建在src下面

注意:如果要用Go Mod(Go1.11及以上支持)进行包管理,则需要在 GOPATH 以外的目录创建工程。关于Go Mod的使用,将会在下面介绍。

开始Hello world

# cd $HOME/go/src
# vim hello.go
package main

import "fmt"

func main() {
    fmt.Printf("hello world\n")
}

运行hello.go

# cd $HOME/go/src
# ls
# hello.go
# go run hello.go
# hello world
#
  • go run: 编译并直接运行程序,它会产生一个临时文件(但不会生成 .exe 文件),直接在命令行输出程序执行结果,方便用户调试。
  • go build:用于测试编译包,主要检查是否会有编译错误,如果是一个可执行文件的源码(即是 main 包),就会直接生成一个可执行文件。
  • go install:的作用有两步:第一步是编译导入的包文件,所有导入的包文件编译完才会编译主程序;第二步是将编译后生成的可执行文件放到 bin 目录下($GOPATH/bin),编译后的包文件放到 pkg 目录下($GOPATH/pkg)。

GOPATH模式开发

我们选择使用Gin框架来写一个小demo,了解GOPATH下,包是怎么组织和引用的。要安装Gin包,你需要先安装Go并设置你的Go工作区。

1.使用下面的go命令安装:

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

我们会发现使用go get到的第三方包都保存在$GOPATH/src/下
在这里插入图片描述
2.在src下创建gin_example.go

# vim gin_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")
}

同级目录中引用import "github.com/gin-gonic/gin"

3.运行gin_example.go

go run gin_example.go

在这里插入图片描述

go mod模式开发

go mod是Golang1.11版本新引入的官方包管理工具,用于解决之前没有地方记录依赖包具体版本的问题,方便依赖包的管理。使用go mod开发管理项目,就不需要非得把项目放到GOPATH目录下,你可以在你磁盘的任何位置新建一个项目。

1.开启Go module并设置国内代理

go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.io,direct

注:开启go mod,代理才能生效

1.新建一个项目

# mkdir mygin
# cd mygin
go mod init mygin

在这里插入图片描述
目录下会新增go.mod文件

1.下载Gin框架

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

2.创建gin_example.go

# vim gin_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")
}

3.运行gin_example.go
在这里插入图片描述
4.mygin目录结构
在这里插入图片描述
这样一个使用go mod包管理方式创建项目的小例子就完成了。看着这个目录结构我们会思考以下问题:

问题一:依赖的包下载到哪里了?还在GOPATH里吗?
在,但是被下载到了$GOPATH/pkg/mod路径下。

问题二: 依赖包的版本是怎么控制的?
版本是在go.mod中指定的。如果,在go.mod中没有指定,go命令会自动下载代码中的依赖的最新版本

配置VScode Go 开发环境

1.安装插件

  • Remote - SSH: windows下开发linux程序,需要安装。
  • Go: Rich Go language support for Visual Studio Code.

2.按装Go Tools
按(ctrl + shift + p)选择(Go: Install/Update Tools)全选安装。

3.重新启动VScode

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值