golang go.mod引用本地包教程

1:建立目录gotestpro,命令mkdir gotestpro

2:建立main函数,。内容如下:

package main 
import (
  "fmt"
  "lib"
  _ "net/http"
  "github.com/tidwall/sjson"
) 
func init() { 
  println("main.init.2") 
} 
func main() { 
  test() 
} 
func init() { 
  println("main.init.1")
  
  structJSON, _ := sjson.Set("", "", "aa") 
  fmt.Println("structJSON:", structJSON)
}

func test() { 
  println(lib.Sum(1, 2, 3)) 
}

3:生成go mod文件 go mod init main.go

4:创建lib目录并创建sum.go文件,文件内容如下:

package lib 

func init() { 
  println("sum.init") 
}
 
func Sum(x ...int) int { 
  n := 0 
  for _, i := range x { 
    n += i 
  } 
  return n 
}

5:进入lib目录使用命令:go mod init sum.go 生成sum.go的go.mod

6:main的go.mod值和lib的下的go.mod值如下,在main的go.mod引入lib的命令见下:

[liushuanpeng@nbadev.bj.sm gotestpro]$ cat go.mod 
module main

go 1.14

require github.com/tidwall/sjson v1.2.1

require lib v0.0.0
replace lib => ./lib
[liushuanpeng@nbadev.bj.sm gotestpro]$ 
[liushuanpeng@nbadev.bj.sm gotestpro]$ cat lib/go.mod 
module sum.go

go 1.14
[liushuanpeng@nbadev.bj.sm gotestpro]$ 

main包下面有多个文件的情况,存在test.go和main.go的情况,如下代码:

[liushuanpeng@nbadev.bj.sm gotestpro]$ cat main.go 
package main 
import (
  "fmt"
  _ "net/http"
  "github.com/tidwall/sjson"
) 
func init() { 
  println("main.init.2") 
} 
func main() { 
  test() 
} 
func init() { 
  println("main.init.1")
  
  structJSON, _ := sjson.Set("", "", "aa") 
  fmt.Println("structJSON:", structJSON)
}


[liushuanpeng@nbadev.bj.sm gotestpro]$ 
[liushuanpeng@nbadev.bj.sm gotestpro]$ cat test.go 
package main
import ( 
  "lib" 
) 
func init() { 
  println("test.init") 
} 
func test() { 
  println(lib.Sum(1, 2, 3)) 
}
[liushuanpeng@nbadev.bj.sm gotestpro]$ 

编译命令:go build main.go test.go

go build *go

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值