如何在同一个包中引用结构
How to reference the struct in the same package
我正在尝试使用两个文件构建网络应用程序。
app.go
和 main.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 .
我正在尝试使用两个文件构建网络应用程序。
app.go
和 main.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 .