为了账号安全,请及时绑定邮箱和手机立即绑定

已导入但未使用的包,即使我清楚地使用了该包

已导入但未使用的包,即使我清楚地使用了该包

Go
慕桂英4014372 2022-11-15 09:54:43
我不明白为什么在 GO 中导入本地包是这样的皮塔饼。他们经常抛出“包已导入但未使用”错误,即使我清楚地在同一个文件中使用了包!然后我使用它的代码抛出一个“未声明的名称”错误,就好像我没有导入它但不知何故你无法识别。任何人都可以解决我的问题吗?这不是第一次发生在我身上。很多时候我只是玩弄它直到它起作用,但现在它变得非常烦人。// go.modmodule final-project// cmd/main.goimport (    "final-project/infra"    "final-project/handler")func main() {    db := config.DBInit()    inDB := &handler.CommentHandler{DB: db}}// infra/config.gopackage infraimport (    "fmt"    "final-project/entity"    "gorm.io/driver/postgres"    "gorm.io/gorm")func DBInit() *gorm.DB {    dsn := "host=localhost user=postgres password=postgres dbname=postgres port=5432 sslmode=disable"    db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{})    if err != nil {        panic("Failed to connect to database")    }    fmt.Println("Database connected")    db.AutoMigrate(structs.Comment{})    return db}// handler/comments.gopackage handlerimport "net/http"type CommentHandler struct{    ///}func (u CommentHandler) Create(w http.ResponseWriter, r *http.Request) {    ///}// entity/structs.gopackage entityimport "time"type Comment struct {    ID uint    Message   string    CreatedAt time.Time    UpdatedAt time.Time}这发生在我尝试从“最终项目”模块导入任何包的所有代码行中。因此,我使用包的所有代码,如db := config.DBInit()(从最终项目/infra 导入)、db.AutoMigrate(structs.Comment{})(从最终项目/实体导入)等都会抛出undeclared name错误(即使如你所见,我已经尝试过导入它)。为什么我的代码无法识别进口商品?任何人都可以帮助我吗?
查看完整描述

1 回答

?
aluckdog

TA贡献1847条经验 获得超7个赞

你导入错了它不应该是文件名

db := config.DBInit()

相反,它应该是包名

db := infra.DBInit()

同样structs.Comment{}应该是entity.Comment{}


查看完整回答
反对 回复 2022-11-15
  • 1 回答
  • 0 关注
  • 76 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信