如何在同一个包中引用结构

How to reference the struct in the same package

我正在尝试使用两个文件构建网络应用程序。

app.gomain.go 都在同一目录中。

app.go

package main

import (
    "database/sql"

    _ "github.com/go-sql-driver/mysql"
    "github.com/gorilla/mux"
)

type App struct {
    Router *mux.Router
    DB *sql.DB
}

func (a *App) Initialize(username, password, server, port, dbName, cacheAddr, cachePass string){
}


func (a *App) Run(addr string) {
}

main.go

package main

func main() {
    a := App{}
    // more code here
}

我认为我的 main.go 文件可以识别 App{} 但我的编辑抱怨 App 是未声明的名称

这两个文件都在同一个主包中,但我不确定哪里出了问题。谁能帮我解决这个问题?谢谢!

根据评论,我假设您 运行 以下命令:go run main.go。这只会加载 main.go 中的代码(以及 import 语句中包含的文件)。要告诉 Go 加载当前目录中的所有 .go 文件,运行 改为:

go run .

同样,要告诉 VSCode 加载所有文件,请按如下方式启动:

code .