go module

GO Module

GO111MODULE=on

以上是开启go modules的前提条件之一,另外要go 1.17版本以上

Go Modules 方式下载下来的第三方库位在 $GOPATH/pkg/mod 文件夹里面

使用go mod 管理项目,就不需要非得把项目放到GOPATH指定目录下,你可以在你磁盘的任何位置新建一个项目,比如:

D:\goproj\modtest

这个不在我们的GOPATH中,以下指令初始化新module块

go mod init <packagename>

看到以下提示说明OK

PS D:\goproj\modtest> go mod init modtest
go: creating new go.mod: module modtest
go: to add module requirements and sums:
        go mod tidy
PS D:\goproj\modtest>

此时文件夹会多一个go.mod的文件

module modtest

go 1.17

包含go.mod文件的目录也被称为模块根,也就是说,go.mod 文件的出现定义了它所在的目录为一个模块。

如何引入第三方包

我们要引入 github.com/headfirstgo/greeting 这个第三方包

模块根 下进行

go get github.com/headfirstgo/greeting

然后我们可以看到go.mod里面变成了

module modtest

go 1.17

// require github.com/jinzhu/configor

require (
  github.com/BurntSushi/toml v0.3.1 // indirect
  github.com/headfirstgo/greeting v0.0.0-20190504033635-66e7507184ee // indirect
  github.com/headfirstgo/keyboard v0.0.0-20170926053303-9930bcf72703 // indirect
  gopkg.in/yaml.v2 v2.2.2 // indirect
)

此时我们可以在main.go中引用并调用了

package main

import (
  "fmt"

  "github.com/headfirstgo/greeting"
)

func main() {
  greeting.Hello()
  greeting.Hi()
}

引入自己的包

我们在开发大型项目的时候会组织目录结构,会有自己的包,自己的包全部放到 模块根下,现在创建一个submodule的文件夹,里面放a.go文件

package submodule

import (
  "fmt"
)

func Sub() {
  fmt.Println("hello i am sub module")
}

然后在main.go中添加引用及调用

package main

import (
  "fmt"

  "modtest/submodule"

  "github.com/headfirstgo/greeting"
)

func main() {
  submodule.Sub()
  greeting.Hello()
  greeting.Hi()
}

这样可以看到输出结果是

hello i am sub module
Hello!
Hi!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值