码迷,mamicode.com
首页 > 数据库 > 详细

Golang Global Variable access

时间:2018-03-20 22:53:36      阅读:494      评论:0      收藏:0      [点我收藏+]

标签:receive   date   restful   fun   fine   ntc   rtti   trie   signature   

golang 中全局变量的问题。

------------------------------------------------------------------

I‘m fairly new to golang, this should be a simple answer but I‘ve tried searching every where with no luck.

How do I access a global variable that was declared/init in my main.go in a different .go package/file? Keeps telling me that the variable is undefined (I know that global variables are bad but this is just to be used as a timestamp)

in main.go

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

trying to access StartTime in a different .go file but keep getting StartTime undefined

2 Answers

I would "inject" the starttime variable instead, otherwise you have a circular dependency between the packages.

main.go

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

otherpackage.go

var StartTime time.Time

I create a file dif.go that contains your code:

package dif

import (
    "time"
)

var StartTime = time.Now()

Outside the folder I create my main.go, it is ok!

package main

import (
    dif "./dif"
    "fmt"
)

func main() {
    fmt.Println(dif.StartTime)
}

Outputs:

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

Files directory structure:

folder
  main.go
  dif
    dif.go

It works!

  •  
    My ‘dif‘ is a restful API and won‘t be called when the program starts but only when its invoked through URL, so i need to put the StartTime in main.go and pass it to dif, you‘re passing it from dif to main, thanks for the try though! – Nighthee Jan 27 ‘16 at 14:05

Golang Global Variable access

标签:receive   date   restful   fun   fine   ntc   rtti   trie   signature   

原文地址:https://www.cnblogs.com/oxspirt/p/8613166.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!