登录
首页 >  Golang >  Go问答

使用Golang中的其他文件目录功能

来源:stackoverflow

时间:2024-03-26 16:21:38 167浏览 收藏

在 Golang 中,为了使用其他文件夹中的文件,需要进行一些配置。首先,在包含函数的文件中更改包名称与所在文件夹一致,例如将 usercontroller.go 中的包名称改为 controllers。其次,在主文件中导入所需的包并使用其路径,例如 "github.com/giovanni2414/truora/controllers"。最后,调用函数时使用包名作为前缀,例如 controllers.loadrecordsfromfile(w, r)。这些修改可以确保正确导入和使用其他文件夹中的文件,实现代码模块化和组织性。

问题内容

我想使用主方法中名为“controllers”的文件夹中的方法,但事实证明,当我启动程序时,它说该函数未找到或定义,我尝试按照包指南进行操作在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

解决方案


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

  1. 首先,您需要在 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)
    }
    
  2. 那么您的 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
  • 通常我们在 当前文件夹 之后定义包名称(但可以不同)。同一文件夹下的所有文件必须具有相同的 package 名称。
  • 当您使用不同包下的函数时,您应该先导入所需的包,然后才能使用该函数。
    您导入的路径应如下所示:///../
  • 最后,您应该像下面这样调用该函数:
    package_name.MyFunction()
    

理论要掌握,实操不能落!以上关于《使用Golang中的其他文件目录功能》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>