Goland是JetBrains家的go编辑器。

GOROOT:Go安装的位置,该目录下有bin目录。不可以跟GOPATH设置同一目录

GOPATH:Go的工作目录,传统结构为下图。GOPATH跟项目不能是同一目录,项目应该在GOPATH目录下。但在go.mod出现之后,项目不再要求必须放在GOPATH目录下了,可以放在其他位置。

Goland%E7%9A%84%E8%AE%BE%E7%BD%AE%202e57580543d74529aec121013ade3d26/GOPATH.svg

GOPROXY:设置Go下载包时的代理。推荐使用GOPROXY=https://goproxy.io,也可以用别的。

现在go推荐的方式时使用go.mod管理项目的依赖包。使用go.mod之后,项目可以不放在GOPATH下的src目录,可以放在任意的地方,但是包依赖依旧会下载到GOPATH的pkg目录下。

go.mod在Go版本1.16前,可以通过 go env -w GO111MODULE=on 启用go.mod,1.16之后默认启用on。

开始设置Goland

首先导入项目。

打开settings-Go。

  1. 找到GOROOT设置Go的环境变量。

    Goland%E7%9A%84%E8%AE%BE%E7%BD%AE%202e57580543d74529aec121013ade3d26/Untitled.png

  2. 设置GOPATH,推荐新建一个专门用于存放Go项目的目录,设置为GOPATH。Global GOPATH只需要选择默认的GOPATH。如果没有特别需要把依赖放在项目下,Project GOPATH不建议设置。另外建议把下面两个选项也勾上。

    Goland%E7%9A%84%E8%AE%BE%E7%BD%AE%202e57580543d74529aec121013ade3d26/Untitled%201.png

  3. 启动go.mod

    勾选Enable Go Modules integration,并设置GOPROXY。

    Goland%E7%9A%84%E8%AE%BE%E7%BD%AE%202e57580543d74529aec121013ade3d26/Untitled%202.png

如果项目中存在多个模块,则需要进入每个子模块目录中执行 go mod init 模块名go mod tidy

,以初始化及更新mod。从某种意义上来说,其实每个项目也相当于一个模块了。

打开项目的go.mod文件,能看到模块名及依赖的包:

module awesomeProject

go 1.16

go.mod文件所在的位置,就是项目/模块的根目录。

go的常用命令

go mod init

在当前目录初始化并创建一个go.mod文件。

go mod tidy

下载需要的依赖,移除不用的依赖

go list -m all

列出项目所有所依赖的包

go get -u 依赖

下载依赖包

其他问题

关于fmt及strings等基础类库标红的问题。

需要重装go。