一、什么是Go语言的工作空间?
Go语言的工作空间,本质上是一个目录,其中包含三个子目录:
- src
: 存放 Go 语言的源代码文件,按照项目进行组织。
- pkg
: 存放编译好的项目包的目录,通常缩写为 packages。
- bin
: 存放编译得到的可执行文件的目录。
在工作空间的根目录下的每个子目录代表着一个独立的工程,每个子目录可以包含不同的包,这些包可以使用其他子目录下的包。
二、GOPATH环境变量介绍
GOPATH是Go语言的一个环境变量,它指向你的工作空间目录,Go语言的工具链和开发流程中大量依赖这个环境变量。好处是一个工作环境可以用一套工具,而不需要针对每个工程单独配环境。
GOPATH环境变量值必须为一个目录路径,可以同时包含多个目录。Windows平台下多个目录之间用分号:
或;
分隔,Unix平台下多个目录之间用冒号:
分隔。
当使用go build、go get、go install等命令时,Go工具链会自动从$GOPATH中加载支持这些命令的源代码并编译生成二进制文件.
例如:
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
设置GOPATH为$HOME/go,在PATH中添加$GOPATH/bin,使每次执行go命令时,都能够找到编译好的可执行文件。
三、示例说明
- 使用一个示例工程gameserver,该工程的源代码目录位于$GOPATH/src/gameserver:
目录结构如下:
$GOPATH
├── bin
├── pkg
└── src
└── gameserver
├── main.go
└── config
└── config.go
其中,main.go 文件是该工程的入口文件,config/config.go 文件是该工程的一个子包。
在命令行中,进入gameserver目录,执行命令go run main.go
,可以将该目录下的main.go文件编译运行。
-
使用第三方库
在Go语言中,可以轻松地使用第三方库来扩展你的项目,将其代码编译到一个库文件中,并由你的项目所使用。例如,我们使用了"gorilla/mux"路由库,具体流程如下: -
执行命令
go get -u github.com/gorilla/mux
,下载安装"gorilla/mux"路由库到$GOPATH/pkg下。 -
在main.go文件中引用路由库:
package main
import (
"github.com/gorilla/mux"
"net/http"
"fmt"
)
- 在main.go文件中使用路由,比如在"8080"端口监听HTTP请求
router := mux.NewRouter()
router.HandleFunc("/", rootHandler)
router.HandleFunc("/product/{key}", productHandler)
fmt.Println("Listening on :8080")
http.ListenAndServe(":8080", router)
- 执行命令
go run main.go
启动服务。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:go语言的工作空间和GOPATH环境变量介绍 - Python技术站