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

我不明白为什么在 GO 中导入本地包是这样的皮塔饼。他们经常抛出“包已导入但未使用”错误,即使我清楚地在同一个文件中使用了包!然后我使用它的代码抛出一个“未声明的名称”错误,就好像我没有导入它但不知何故你无法识别。


任何人都可以解决我的问题吗?这不是第一次发生在我身上。很多时候我只是玩弄它直到它起作用,但现在它变得非常烦人。


// go.mod


module final-project

// cmd/main.go


import (

    "final-project/infra"

    "final-project/handler"

)


func main() {

    db := config.DBInit()

    inDB := &handler.CommentHandler{DB: db}

}

// infra/config.go

package infra


import (

    "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.go

package handler


import "net/http"


type CommentHandler struct{

    ///

}


func (u CommentHandler) Create(w http.ResponseWriter, r *http.Request) {

    ///

}

// entity/structs.go

package entity


import "time"


type Comment struct {

    ID uint

    Message   string

    CreatedAt time.Time

    UpdatedAt time.Time

}

这发生在我尝试从“最终项目”模块导入任何包的所有代码行中。因此,我使用包的所有代码,如db := config.DBInit()(从最终项目/infra 导入)、db.AutoMigrate(structs.Comment{})(从最终项目/实体导入)等都会抛出undeclared name错误(即使如你所见,我已经尝试过导入它)。为什么我的代码无法识别进口商品?任何人都可以帮助我吗?


慕桂英4014372
浏览 77回答 1
1回答

aluckdog

你导入错了它不应该是文件名db := config.DBInit()相反,它应该是包名db := infra.DBInit()同样structs.Comment{}应该是entity.Comment{}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go