go代码非main.go文件里如何调用main.go文件里定义的变量?

作者站长头像
站长
· 阅读数 15

go 新手,改别人的用 beego 开发的一个项目,想加一个获取当前系统状态的接口,其中有个字段要获取程序的开始运行时间的时间戳,想了各种办法没解决,我现在是在 main.go 里定义了一个全局变量

......
var Starttime = time.Now().Unix()
......

然后我在 controllers 目录下的 go 文件里该如何获取这个值呢?

回复
1个回答
avatar
test
2024-07-17

可以不在 main 包中定义,参考数据库驱动的加载方式,

在比如 config 下定义,main 下初始化引入,其他地方要用的时候再调用

// config/test.go
package config

var Starttime = time.Now().Unix()


// other/test.go
package other

import (
    "fmt"
    "path_to/config"
)

func Test() {
    fmt.Println("获取config", config.Starttime)
}

// main.go
package main

import (
    "fmt"
    _ "path_to/config"
    "path_to/other"
)

func main() {
    other.Test()
}


回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容