gpt4 book ai didi

go - Go本地包中的未定义函数

转载 作者:行者123 更新时间:2023-12-01 20:24:39 27 4
gpt4 key购买 nike

我是Go的新手,正在尝试构建API,但是在导入位于另一个本地包中的函数时遇到一些问题。
我的文件夹结构如下所示:

├── app.go //at package "main"
└── middleware
├── authentication.go // package "middleware"
我试图像这样在authentication.go文件中导入函数:
package main

import (
"fmt"
"log"
"net/http"

"./middleware" //Also tried "middleware"
)
认为这是一个导入问题,因为如果我将功能移至相同的程序包和文件夹,则可以正常工作。
我尝试使用的功能也以大写字母开头,因此导入它应该没有问题:
func AuthMiddleware(next http.Handler) http.Handler {
//...
}
我的代码有什么问题?此外,什么是导入本地包而无需编写整个路径的最佳方法是什么?
我正在使用Go 1.15.2,并检查了所有相关的S.O帖子,但没有一个可以解决我的问题。
编辑 :
每当使用位于另一个软件包中的功能时,都必须首先引用该软件包。我试图将我的函数称为 AuthMiddleware(parameters),但正确的调用方式是 middleware.AuthMiddleware(parameters)

最佳答案

不要使用这样的点导入路径,不建议这样做。使用go src目录的相对路径(只能是本地路径,不必在线),这样就可以正常工作。
所以像

 import "me.com/api/middleware"
然后,为了避免口吃:
 middleware.Auth()

关于go - Go本地包中的未定义函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63859188/

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