variables go global main

variables - Golang Global Variable access



main (2)

Soy bastante nuevo en Golang, esta debería ser una respuesta simple, pero he intentado buscar en todas partes sin suerte.

¿Cómo accedo a una variable global que fue declarada / init en mi main.go en un paquete / archivo .go diferente? Sigue diciéndome que la variable no está definida (sé que las variables globales son malas, pero esto solo debe usarse como marca de tiempo)

en main.go

var StartTime = time.Now() func main(){...}

tratando de acceder a StartTime en un archivo .go diferente pero sigue obteniendo StartTime sin definir


Creo un archivo dif.go que contiene tu código:

package dif import ( "time" ) var StartTime = time.Now()

Fuera de la carpeta creo mi main.go , está bien!

package main import ( dif "./dif" "fmt" ) func main() { fmt.Println(dif.StartTime) }

Salidas:

2016-01-27 21:56:47.729019925 +0800 CST

Estructura de directorios de archivos:

folder main.go dif dif.go

¡Funciona!


Me gustaría "inyectar" la variable de inicio en su lugar, de lo contrario tiene una dependencia circular entre los paquetes.

main.go

var StartTime = time.Now() func main() { otherPackage.StartTime = StartTime }

otro paquete.go

var StartTime time.Time