在同一个包中的两个源文件之间共享变量

时间:2012-10-11 01:00:25

标签: http global-variables go

我正在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已声明且未使用”

我做错了什么?

1 个答案:

答案 0 :(得分:7)

我假设在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")