【问题标题】:Sharing variables between two source files in the same package在同一个包中的两个源文件之间共享变量
【发布时间】:2012-10-11 10:55:58
【问题描述】:

我正在使用 Go 进行一个项目。对于组织,我将代码拆分为文件:

  • 服务器相关函数进入server.go
  • 数据库处理进入 db.go
  • 全局变量在 types.go

我在types.go中声明了一个变量document_root,并在main.go中定义了它:

document_root,error := config.GetString("server","document_root")

server.go 中,我有一个函数可以为请求的文件生成 HTTP 状态代码,它确实:

_, err := os.Stat(document_root+"/"+filename);

在编译时,我收到此错误:

“document_root 已声明但未使用”

我做错了什么?

【问题讨论】:

    标签: http global-variables go


    【解决方案1】:

    我假设在 types.go 中,您在包范围内声明 document_root。如果是这样,问题出在这一行:

    document_root, error := config.GetString("server", "document_root")
    

    在这里,您无意中创建了另一个 document_root 变量局部于 main 函数。你需要这样写:

    var err error
    document_root, err = config.GetString("server", "document_root")
    

    【讨论】:

    • 哦,好的,解决了。查看语言规范页面,我没有意识到 := 重新声明了它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多