下载
官网
官网下载最新的msi文件
双击打开,直接next
选择安装路径,然后next
环境配置
作为程序员,配置软件的环境变量是一项基本技能
GOLANG_HOME
与Java相同,Java需要配置JAVA_HOME,Golang也同理,它能够使你在任何位置使用go xx
命令,编译运行Go文件,下载Go依赖
加入到Path中,确定即可
在cmd中输出go version
进行验证
GOPATH
作为Go,GOPATH是一个十分重要的配置,用来表明你写的go
项目的存放路径
GOPATH
路径最好只设置一个(允许设置多个),所有的项目代码都放到GOPATH
的src
目录下。
创建对应文件夹,同时在该文件夹内创建bin
、src
、pkg
文件夹
bin
用来存放编译后的二进制文件pkg
用来存放编译后的归档文件src
用来存放我们源代码和下载的第三方依赖
项目结构说明
Go语言中也是通过package来组织代码文件,我们可以引用别人的包也可以使用自己的包。一般使用域名去引用别人或者引用自己的包。既可以使用自己的github域名也可以自定义域名com.xx
当我们从下载第三方依赖时
go get github.com/go-sql-driver
这个包会下载到我们本地GOPATH
目录下的src\github.com\go-sql-driver
引用时
import "github.com/go-sql-driver"
创建项目
第一种
在过去创建个人的Go项目,一般创建在$GOPATH/src
下,项目能够正常使用,同时我们的IDE例如Goland能够识别个人项目下不同的包文件。
但是对于我们个人而言并不友好,因为$GOPATH/src
同时存放着第三方下载的依赖,我们个人项目是不能与其混为一谈,也不负责单一职责原则。同时在过去的编程习惯中,个人项目应该是与第三方依赖是分开存放的。
第二种
在其他位置创建项目,在项目内部引用项目的其他package时,必须通过相对路径的方式。通过这种方式,更够正确引用其他包文件,但是Goland难以自动识别,必须手动写import
语句。同时在使用单元测试时,无法找到引用的内容。总而言之问题很大
import ("../../crawler/engine""../../crawler/model")import "../config"
第三种
在Golang1.11后,go发布了Go Module功能,它能够使我们告别GOPATH
,使个人项目不在依赖于GOPATH
。提供了一个简单方便的包依赖管理工具
初始化 com.example
就是前面所说的域名
go mod init com.example
该命令后,就会在当前文件夹内创建go.mod文件,内容如下
module com.examplego 1.14
go.mod文件说明
go.mod存放在项目的根目录下
go.mod面向行
注释使用
//
mod文件的主要指令
module:定义当前模块和包路径
require:定义所需要的模块和版本
exclude:排除特定版本的模块和版本
replace:替换指定模块
go mod命令
命令指令:go mod [可选参数]
init:创建和初始化
tidy:添加和修正缺失的模块
vendor:将依赖复制到vendor目录
verify:将依赖进行检查
download:下载modules到本地cache
edit:命令行的方式进行修改mod文件
graph:以文本模式打印模块需求图
why:为什么需要这个包
使用
使用go get
命令会直接将所依赖的包加载到go.mod文件中
go get github.com/xxx
使用go mod tidy
命令会将项目中用到的但mod中没有的模块更新加载到mod中
解决无法访问golang.org/x等谷歌的包
使用replace命令
用新的包代替旧的包
格式:replace 包[version] => 包 version
不知道version,使用latest代替
module example.com/mgo 1.14replace ( golang.org/x/crypto => github.com/golang/crypto latest golang.org/x/sys => github.com/golang/sys latest)
佛系更新,如有错误下方留言,共同进步