gpt4 book ai didi

go - 使用其他文件的功能是其他目录Golang

转载 作者:行者123 更新时间:2023-12-01 22:43:09 25 4
gpt4 key购买 nike

关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。












想改进这个问题?将问题更新为 on-topic对于堆栈溢出。

1年前关闭。




Improve this question




我想在我的主要方法中使用一个名为“ Controller ”的文件夹中的方法,但事实证明,当我启动程序时它说找不到或定义该函数,我尝试按照 Golang 中的包指南进行操作文档,但是使用 Go 构建和 Go 安装这不起作用,我只想知道如何使用其他文件夹中的文件来获得更多订单,这里是代码和我的文件树,首先:UserController.go ,这里是 funcionLoadRecordsFromFile()... (重复...我尝试使用 go build 和 go install 从文档但不工作...)

package main
import (
"net/http"
"log"
)
func LoadRecordsFromFile(w http.ResponseWriter, r *http.Request) {
// Maximum upload of 10 MB files
r.ParseMultipartForm(10 << 20)
}
这是我的 main.Go,如果我想使用来自 UserController.go 的函数 LoadRecordsFromFile()
package main
import (
"net/http"
"github.com/go-chi/chi"
"log"
)
func main() {
r := chi.NewRouter()
r.Post("/loadUsers", func(w http.ResponseWriter, r *http.Request) {
LoadRecordsFromFile(w,r)
})

log.Print("Server started in port 3000")
http.ListenAndServe(":3000", r)
}
文件是...
-GolangProject
-Main.go
-controllers
--UserController.go

最佳答案

您需要对代码进行一些更改。

  • 首先,您需要在 UserController.go 中更改您的包名.让我们使用 controllers作为包。
    package controllers

    import (
    "net/http"
    "log"
    )
    func LoadRecordsFromFile(w http.ResponseWriter, r *http.Request) {
    // Maximum upload of 10 MB files
    r.ParseMultipartForm(10 << 20)
    }
  • 然后你的Main.go需要一些改变。
    package main

    import (
    "net/http"
    "github.com/go-chi/chi"
    "log"

    "github.com/Giovanni2414/Truora/controllers"
    )

    func main() {
    r := chi.NewRouter()
    r.Post("/loadUsers", func(w http.ResponseWriter, r *http.Request) {
    controllers.LoadRecordsFromFile(w,r)
    })

    log.Print("Server started in port 3000")
    http.ListenAndServe(":3000", r)
    }

  • 我认为这些变化就足够了。

    一些注意事项:
  • 只有你的主文件应该有 package main .
  • 通常我们在 current folder 之后定义包名(但它可以不同)。同一文件夹下的所有文件必须具有相同的package姓名。
  • 当您使用不同包下的功能时,您应该先导入所需的包,然后才能使用该功能。
    你的导入路径应该是这样的:<project-module-name>/<folder1>/<folder2>/../<final-folder> .
  • 最后,您应该像下面这样调用该函数:
    package_name.MyFunction()
  • 关于go - 使用其他文件的功能是其他目录Golang,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63708607/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com