Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从Golang中的外部包导入方法?_Go_Methods_Struct_Import - Fatal编程技术网

如何从Golang中的外部包导入方法?

如何从Golang中的外部包导入方法?,go,methods,struct,import,Go,Methods,Struct,Import,对不起,如果这个问题有点基本,但是我还没有找到任何关于它的文档。 我正在尝试从example.com/User/project/controllers包导入以下方法 func (env *Env) Index(ctx *fasthttp.RequestCtx, ps fasthttprouter.Params){ fmt.Fprintf(ctx, "Hi there! RequestURI is %q", ctx.RequestURI()) } 输入以下文件,以便在路由器中使用,如下所示

对不起,如果这个问题有点基本,但是我还没有找到任何关于它的文档。 我正在尝试从
example.com/User/project/controllers
包导入以下方法

func (env *Env) Index(ctx *fasthttp.RequestCtx, ps fasthttprouter.Params){
   fmt.Fprintf(ctx, "Hi there! RequestURI is %q", ctx.RequestURI())
}
输入以下文件,以便在路由器中使用,如下所示

db, err := db.Conn()
    if err != nil {
        log.Panic(err)
    }

    env := &Env{db}

    ...

   router.GET("/", env.controllers.Index)///this import is not valid
我尝试过使用
controllers.env.Index
env.controllers.Index
我也尝试过在导入之前使用
导入 在这种情况下,如何从另一个包导入方法,从而将结构(
ENV
)传递给它?要澄清这里的问题,请在助手的顶部使用包顶部的方法,例如
method.package.helper
如何解析上述代码,以便将方法从外部包传递给助手
谢谢

我想澄清一下,您想将db结构传递给Env结构,对吗

如果我理解正确,可能会有所帮助

由于结构实际上只是字段的集合,因此它依赖于Env结构的组成


您收到的错误是什么?

谢谢您的回复。我已经修改了我的问题。我在这里遇到的问题是,我不能再在外部包中使用
方法。helper
我需要以某种方式引用从中派生方法的包。因此提供了
方法。(外部)package.helper
不起作用:为了从另一个可以应用结构的包中导入方法,什么是成功的方法?再次感谢如果您希望从另一个包导入方法,则需要“导出”该函数。这意味着该函数不能是方法(绑定到对象),并且该函数在开始时也必须大写,如下所示:
func Something(){fmt.Println(“嘿!”)}
EDIT:sorry,没有意识到会自动在Return上发布评论,你读过吗,哪篇文章专门介绍了这一点?