Golang中如何实现文档间的函数导入
Golang中如何实现文档间的函数导入 早上好,我想知道如何在 main.go 中调用位于不同文档中的函数。
目录结构: groups -----controllers -------usersControllers.go main.go
文件 main.go
package main
import (
"./groups/controllers"
"github.com/gorilla/mux"
"log"
"net/http"
"time"
)
终端调试信息:
build command-line-arguments: cannot find module for path /C/Users/YeisonQ/Documents/Yeison/Backup_Yeison/Trabajos/Api_fullrest_scim_go/groups/controllers
感谢您的关注。
更多关于Golang中如何实现文档间的函数导入的实战教程也可以访问 https://www.itying.com/category-94-b0.html
我认为,如果你正在使用 Go 模块,那么你的导入路径需要以模块名称开头。例如,如果你的模块名称是 模块 github.com/yeisonqb/cool_application,那么你的导入路径将是 github.com/yeisonqb/cool_application/groups/controllers。
如果你没有使用模块,那么你的导入路径将从你的 $GOPATH/src 目录开始。然后你需要向下遍历到你的应用程序的根文件夹。
希望这能有所帮助。
在Go中导入不同文件的函数,需要正确设置模块和包结构。以下是解决方案:
首先确保项目根目录有go.mod文件。如果没有,在项目根目录运行:
go mod init your-module-name
调整目录结构为:
your-project/
├── go.mod
├── main.go
└── groups/
└── controllers/
└── usersControllers.go
修改usersControllers.go的包声明和导出函数:
// groups/controllers/usersControllers.go
package controllers // 包名改为controllers
import "fmt"
// 函数名首字母大写才能被导出
func GetUsers() {
fmt.Println("获取用户列表")
}
修改main.go的导入路径:
// main.go
package main
import (
"your-module-name/groups/controllers" // 使用模块路径
"github.com/gorilla/mux"
"log"
"net/http"
"time"
)
func main() {
controllers.GetUsers() // 调用导出的函数
r := mux.NewRouter()
// ... 其他代码
}
如果使用相对路径导入,确保在go.mod中正确声明模块名。检查go.mod文件内容:
module your-module-name
go 1.16
require github.com/gorilla/mux v1.8.0
运行以下命令同步依赖:
go mod tidy
然后构建运行:
go run main.go
关键点:
- 使用
go.mod模块系统 - 导出函数首字母必须大写
- 导入路径基于模块名,而不是相对路径
- 确保包名与目录名一致

