英文:
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
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论