一、go安装
1、建议去go语言中文网下载,网址:https://studygolang.com/dl,下图是下载页面及包介绍:
2、因为我是windows系统,所以选择Windows版安装。其他系统按照需要下载相应的版本即可。下载安装包后,一直选择 next即可。安装过程中,我选择安装目录为:D:\Program Files\Go 。
go version
4、在任意盘里新建文件夹GoWorks,我选择在G盘创建 GoWorks 文件夹,并在该文件夹下再新建三个文件夹: bin、src、pkg 。
5、如下图添加环境变量:GOPATH=G:\GoWorks (即第4步创建的文件夹);
GOROOT=D:\Praogram Files\Go (即第2步 go 的安装目录)。
二、安装goland
官网下载链接:https://www.jetbrains.com/go/ 。
三、相关环境配置
1、设置GOPROXY
由于国内网络有防火墙的存在,导致有些Go语言的第三方包无法直接通过 go get 命令获取。GOPROXY 是Go语言官方提供的一种通过中间代理商来为用户提供包下载服务的方式。要使用 GOPROXY 只需要设置环境变量 GOPROXY 即可。
目前公开的代理服务器的地址有:
goproxy.io;
goproxy.cn:(推荐)由国内的七牛云提供,以利于中国开发者更好使用go module。
2、配置 Goland IDE
在 GoLand 2019.1中使用 go module 需要进行两个设置:
①Settings-> Go -> Go Modules (vgo),勾选 Enable Go Modules (vgo) integration 以启用 Go Modules,并在 Proxy 输入框中输入 :
https://goproxy.cn,direct
如图所示:
②Settings-> Go -> GOPATH,勾选上 Index entire GOPATH 以索引整个 GOPATH,不然无法导入包。如图所示:
四、Demo
1、新建项目
2、编写代码。
创建 main.go 文件:
package main
import (
"github.com/julienschmidt/httprouter"
"net/http"
)
func RegisterHandlers() *httprouter.Router {
router := httprouter.New()
router.GET("/user", GetUser)
return router
}
func main() {
r := RegisterHandlers()
http.ListenAndServe(":8000", r)
}
创建 handlers.go文件:
package main
import (
"io"
"net/http"
"github.com/julienschmidt/httprouter"
)
func GetUser(w http.ResponseWriter, r *http.Request, p httprouter.Params) {
io.WriteString(w, "Get User Handler")
}
目前项目结构如下:
3、到目前为止,这还不是个go module,因为还没有go.mod文件。
我们进入到项目根目录下,输入 go mod init 命令。此命令会在当前目录中初始化和创建一个新的 go.mod 文件,当然你也可以手动创建一个 go.mod 文件,在文件中包含一些 module 声明,这样比较麻烦。使用 go mod init 命令可以帮助我们自动创建。go mod init 同时生成 go.sum 文件,go.sum是一个模块版本内容的校验值,用来验证当前缓存的模块。go.sum包含了直接依赖和间接依赖的包的信息,比 go.mod 要多一些。
由于我们在代码中引入了第三方依赖 github.com/julienschmidt/httprouter ,需要把该依赖下载到本地,我们再执行 : go mod tidy 。
默认情况下,go 不会移除 go.mod 文件中的无用依赖。所以当你的依赖中有些使用不到了,可以使用go mod tidy命令来清除它。
用法: go mod tidy [-v] 它会添加缺失的模块以及移除不需要的模块。添加参数 -v
,例如 go mod tidy -v
可以将执行的信息,即移除的模块打印到标准输出。
4、当编写完代码后,我们想启动项目来调试。
①在 Goland 的右上方找到“Add Configuration”并单击。
②在弹出的窗口中点击“+”,并在下拉菜单中选择“Go Build”。
③点击“Go Build”之后,在窗口中填写对应的信息,如下所示。
上图中有以下几点需要注意:
Name:为本条配置信息的名称,可以自定义,也可以使用系统默认的值;
Run kind:这里需要设置为“Directory”;
Directory:用来设置 main 包所在的目录,不能为空;
Output directory:用来设置编译后生成的可执行文件的存放目录,可以为空,为空时默认不生成可执行文件;
Working directory:用来设置程序的运行目录,可以与“Directory”的设置相同,但是不能为空。
PS:除了上面提到的几点外,其余的配置项使用系统的默认值即可,无需修改。
5、然后,我们就可以点击 Goland 右上方的绿色三角来运行上面编写的程序了。
6、项目启动后,我们在浏览器输入: http://localhost:8000/user 就可以看到返回的字符串了。
参考文档:
https://www.jb51.net/article/198515.htm
http://www.seaxiang.com/blog/dgme
https://studygolang.com/articles/31753
http://c.biancheng.net/view/6170.html
http://www.45fan.com/article.php?aid=1u9TsjcXfu4Gl0Yc