Golang глобальной переменной
Я новичок в golang, это должен быть простой ответ, но я пробовал поиск везде, но безрезультатно.
Как получить доступ к глобальной переменной, которая была объявлена/init в моем main.иди в другой .перейти пакет / файл? Твердят, что переменная не определена (я знаю, что глобальные переменные-это плохо, но это просто будет использоваться как метка)
в Main.go
var StartTime = time.Now()
func main(){...}
попытка доступа к StartTime в другом .go file но продолжайте получать StartTime undefined
2 ответов
вместо этого я бы "впрыснул" переменную starttime, иначе у вас есть круговая зависимость между пакетами.
main.go
var StartTime = time.Now()
func main() {
otherPackage.StartTime = StartTime
}
otherpackage.go
var StartTime time.Time
создать файл dif.go
что содержит ваш код:
package dif
import (
"time"
)
var StartTime = time.Now()
вне папки я создаю свой main.go
, это нормально!
package main
import (
dif "./dif"
"fmt"
)
func main() {
fmt.Println(dif.StartTime)
}
выходы:
2016-01-27 21:56:47.729019925 +0800 CST
структура каталогов файлов:
folder
main.go
dif
dif.go
это работает!