- 系统:Ubuntu
- IDE:VSCode
1.创建包
1.1.当前我的目录结构
src/
firstGo/
main.go
lastGo/
sum.go
1.2.编写函数
用包名初始化sum.go
文件:
package lastGo
写两个函数:
//private
var logMessage = "[LOG]"
//public
var Version = "1.0"
func internalSum(_iNum int) int {
return _iNum - 1
}
func Sum(_iNum1, _iNum2 int) int {
return _iNum1 + _iNum2
}
2.创建模块
命令:go mod init github.com/myuser/lastGo
运行此命令后,github.com/myuser/lastGo
就会变成模块的名称。在其他程序中,你将使用该名称进行引用。命令还会创建一个名为go.mod
的新文件。
2.1.当前目录结构
src/
firstGo/
main.go
lastGo/
go.mod
sum.go
2.2.go.mod内容
module main
go 1.16
3.引用本地模块
3.1.初始化包
cd到firstGo
目录下执行命令;
命令:go mod init firstGo
此命令会在firstGo
项目下创建一个新的go.mod
文件;
3.2.当前目录结构
src/
firstGo/
go.mod
main.go
lastGo/
go.mod
sum.go
3.3.修改内容
新生成的go.mod
是一个副本,内容跟主文件内容一样。由于我们引用的是该模块的本地副本,所以我们要通知Go不要使用远程位置。需要我们手动修改go.mod
文件,使其包含以用:
module main
go 1.16
require github.com/myuser/lastGo v0.0.0
replace github.com/myuser/lastGo => ../lastGo
replace
关键字指定使用本地目录,而不是模块的远程位置。 在这种情况下,由于 firstGo和lastGo程序在同级目录下,因此位置只能是../lastGo
。如果模块源位于不同的位置,请在此处定义本地路径。
3.4.使用
package main
import (
"github.com/myuser/lastGo"
)
func main() {
total := lastGo.Sum(10, 20)
println(total)
println("Version", lastGo.Version)
}
运行命令:go run main.go
输出内容: