一、文件架构
.
├── go.mod
├── go.work
├── main
│ └── main.go
└── util
├── go.mod
└── util.go
其中go.mod
module test
go 1.21.0
其中go.work
go 1.21.0
use (
.
./util
)
main/main.go
1 package main
2
3 import (
4 "fmt"
5 "uuu"
6 )
7
8
9 func main() {
10 a := utils.Add(1, 3)
11 fmt.Println(a)
12 }
util/go.mod
1 module uuu
2
3 go 1.21.0
util/util.go
1 // util.go
2 package utils
3
4 import "fmt"
5
6 func Add(a int, b int) int {
7 return a + b
8 }
9
10 func init(){
11 fmt.Println("hahahah")
12 }
执行后:
┌─[zhaoky@zhaoky]─[~/Desktop/kaiyue/module]
└──╼ $go run ./main
hahahah
4
需要注意的是,在go.work中添加了子模块的路径,否则在main.go 中会报错如下
┌─[zhaoky@zhaoky]─[~/Desktop/kaiyue/module]
└──╼ $go run ./main
main/main.go:5:2: package uuu is not in std (/usr/local/go/src/uuu)