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