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



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

  • 服务器相关功能进入server.go
  • 数据库处理进入db.go
  • 全局变量的类型为。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已声明但未使用">

我做错了什么?

我假设在types.go中,您在包作用域中声明document_root。如果是这样,问题就出在这一行:

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

在这里,您无意中创建了main函数本地的另一个document_root变量。你需要写这样的东西:

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

相关内容

  • 没有找到相关文章