同一个包的变量,在不同的文件不能访问吗?

123445 · 2019-10-28 10:26:01 · 1807 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2019-10-28 10:26:01 的主题,其中的信息可能已经有所发展或是发生改变。

我目前正在试着自己写一个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

这在同一个包下面,不同文件的变量而已,怎么会报错呢?


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1807 次点击  
加入收藏 微博
1 回复  |  直到 2019-10-28 11:38:37
123445
123445 · #1 · 5年之前

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

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传