gpt4 book ai didi

go - 在 golang 中导入自定义包

转载 作者:IT王子 更新时间:2023-10-29 02:30:22 25 4
gpt4 key购买 nike

我有以下内容:

app/main.go
app/server/server.go
app/server/templates.go

main.goimport "app/server" 的 import 语句,但是在编译时,它会报错:

在 app/server 中找到包服务器 (server.go) 和模板 (templates.go)

我猜它对加载哪个包感到困惑?我的意图是 server.go 将设置路由并导入 ./templates.go 以呈现模板。

有没有更好的布局文件的方法?我应该将 templates.go 移动到它自己的目录吗?

最佳答案

阅读:http://golang.org/doc/code.html — 但简而言之:

  • 每个目录一个包/每个包一个目录。您同时拥有 servertemplates 包,而您应该只有一个 - package main 如果您尝试编译二进制文件而不是库。

  • 不要使用“相对”导入。使用完全限定路径 - 即如果您的基础项目是 $GOPATH/src/github.com/JohnFromSO/myapp 那么您将导入子包作为 github.com/JohnFromSo/myapp/数据库

  • 您可能不需要将 templates.go 拆分成一个单独的包 - 一个好的经验法则是“如果这个包独立存在/可用,它是否可用被别人?”

另一个不错的读物是 https://medium.com/@benbjohnson/structuring-applications-in-go-3b04be4ff091

关于go - 在 golang 中导入自定义包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24817661/

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