我目前正在试着自己写一个web框架。
我定义了一个core
包,作为框架核心。
我在下面app.go:
//GlobalApp global app
type GlobalApp *App
//App 全局app实例
type App struct {
Config Config
SessionManager *session.Manager
route *Route
}
//NewApp 新建应用
func NewApp(conf Config, r *Route) *App {
GlobalApp := &App{
Config: conf,
SessionManager: &session.Manager{
CookieName: "SESSIONID",
Lifecycle: time.Minute * 30,
},
route: r,
}
return GlobalApp
}
这个GlobalApp
变量我打算作为全局的应用实例,所有要用到公用对象的地方,都放在里面供其他地方使用。
在同目录下面我新建了一个route.go
文件:
//...这里省略
func (r *Route) ServeHTTP(rw http.ResponseWriter, req *http.Request) {
log.Println(GlobalApp)
}
编译和ide都会报错:type GlobalApp is not an expression
这在同一个包下面,不同文件的变量而已,怎么会报错呢?
有疑问加站长微信联系(非本文作者)

一下懵逼了,其实我那个
type GlobalApp *App
应该写成var GlobalApp *App
的。