Nig*_*hee 41 variables program-entry-point global go
我对golang很新,这应该是一个简单的答案,但我试着搜索每一个没有运气的地方.
如何在不同的.go包/文件中访问main.go中声明为/ init的全局变量?继续告诉我变量是未定义的(我知道全局变量很糟糕,但这只是用作时间戳)
在main.go
var StartTime = time.Now()
func main(){...}
Run Code Online (Sandbox Code Playgroud)
尝试在不同的.go文件中访问StartTime,但一直未定义StartTime
oli*_*lif 63
我会"注入"starttime变量,否则你的包之间会有一个循环依赖.
main.go
var StartTime = time.Now()
func main() {
otherPackage.StartTime = StartTime
}
Run Code Online (Sandbox Code Playgroud)
otherpackage.go
var StartTime time.Time
Run Code Online (Sandbox Code Playgroud)
小智 8
我创建一个dif.go包含您的代码的文件:
package dif
import (
"time"
)
var StartTime = time.Now()
Run Code Online (Sandbox Code Playgroud)
在我创建文件夹的外部main.go,没关系!
package main
import (
dif "./dif"
"fmt"
)
func main() {
fmt.Println(dif.StartTime)
}
Run Code Online (Sandbox Code Playgroud)
输出:
2016-01-27 21:56:47.729019925 +0800 CST
Run Code Online (Sandbox Code Playgroud)
文件目录结构:
folder
main.go
dif
dif.go
Run Code Online (Sandbox Code Playgroud)
有用!