英文:
How do I connect a function from another directory to Go/Echo?
问题
在main.go文件中,你导入了lolo/views和github.com/labstack/echo/v4两个包,并在main()函数中使用了views.F_count_private函数。然而,在count_private.go文件中,你也定义了一个名为F_count_private的函数,导致了重复声明的错误。
要解决这个错误并使得你可以在main()函数中使用F_count_private(...)函数,你可以采取以下两种方法之一:
-
修改
count_private.go文件中的函数名:你可以将F_count_private函数重命名为其他不会与已有函数冲突的名称,例如F_count_private_new。然后在main.go文件中更新对应的函数调用。 -
将
count_private.go文件中的函数移动到另一个文件:你可以将F_count_private函数移动到一个新的文件中,例如cat.go。然后在main.go文件中导入cat.go并更新对应的函数调用。
无论你选择哪种方法,都需要确保在main.go文件中正确引用了函数,并且没有重复声明的情况发生。这样就可以避免重复声明的错误,并且可以在main()函数中使用F_count_private(...)函数了。
英文:
Created a project with structure:
lolo
--views
----count_private.go
--go.mod
--go.sum
--logs.log
--main.go
Code in main.go
package main
import(
"lolo/views"
"github.com/labstack/echo/v4"
)
func main() {
e := echo.New()
e.GET("/f_count_private", views.F_count_private)
e.Logger.Fatal(e.Start(":1323"))
}
Code in count_private.go
package views
import(
"net/http"
"github.com/labstack/echo"
)
func F_count_private(c echo.Context) error {
return c.String(http.StatusOK, "Hello, World!")
}
When running the code via the $ go run main.go command, an error is thrown:
# lolo/views
views\count_private.go:9:6: F_count_private redeclared in this block
views\cat.go:7:6: other declaration of F_count_private
Can you please tell me how to get around the error and make it so that I can use the f_count_private(...) function from another file in main()?
答案1
得分: 1
在views包中,你导入了"github.com/labstack/echo/v4"包。
在main中,你使用了来自github.com/labstack/echo/v4的e.GET,而在views包中,你导入了"github.com/labstack/echo"。
这些是Go语言中的不同包,所以FCountPrivate定义中的echo.Context类型与github.com/labstack/echo/v4包中的HandlerFunc类型中使用的Context类型是不同的。
回复 @user:371023
英文:
In the views package you import the "github.com/labstack/echo/v4" package.
In main you use e.GET from github.com/labstack/echo/v4, and in the views package you import "github.com/labstack/echo"
These are different packages for go, so the echo.Context type in the FCountPrivate definition is different from the Context type used in the HandlerFunc type from the github.com/labstack/echo/v4 package.
Response @user:371023
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。


评论