# 模块调用
# 1、创建目录
在 src 目录下创建测试项目 mydemo
,然后 cd
进入该目录,并创建 home
、mods
两个子目录
home
主程序代码mods
模块代码
# 2、创建模块
进入 mods
目录,创建 maths.go
文件,编写如下代码:
package mods
func init() {
// init 函数会在模块导入的时候自动调用,可以编写多个 init 函数
}
func Add(a int, b int) int {
return a + b
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
然后运行命令 go mod init mydemo/mods
会创建 go.mod
文件,也可以手动创建该文件
module mydemo/mods
go 1.21.0
1
2
3
4
2
3
4
根据警告信息,在 mydemo
目录创建 go.work
go 1.21.0
use ./mods
1
2
3
4
2
3
4
# 3、编写主程序
进入 home
目录,创建 main.go
文件,编写如下代码:
package main
import (
"fmt"
"mydemo/mods"
)
func main() {
fmt.Println("hello world")
a := mods.Add(2, 4)
fmt.Println(a)
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
然后运行命令 go mod init mydemo/home
会创建 go.mod
文件,也可以手动创建该文件
module mydemo/home
go 1.21.0
1
2
3
4
2
3
4
添加模块依赖:
go mod edit -replace mydemo/mods=../mods
# 设置模块版本
go mod tidy
1
2
3
4
2
3
4
最终 go.mod
内容为:
module mydemo/home
go 1.21.0
replace mydemo/mods => ../mods
require mydemo/mods v0.0.0-00010101000000-000000000000
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
模块路径后面的数字是伪版本号 - 用于代替语义版本号(模块还没有)的生成的数字
要引用已发布的模块,go.mod
文件通常会省略 replace 指令并使用末尾带有标记版本号的 require 指令。
require mydemo/mods v0.0.1
← 搭建开发环境