如何访问全局变量

时间:2016-01-27 13:36:36

标签: variables go global main

我对golang很新,这应该是一个简单的答案,但我已经尝试过搜索每一个没有运气的地方。

如何在不同的.go包/文件中访问main.go中声明为/ init的全局变量?继续告诉我变量是未定义的(我知道全局变量很糟糕,但这只是用作时间戳)

在main.go

        '
        '
        Console.WriteLine()
    Next

尝试在不同的.go文件中访问StartTime 但一直未定义StartTime

3 个答案:

答案 0 :(得分:60)

我会“注入”starttime变量,否则你在包之间会有一个循环依赖。

main.go

var StartTime time.Time

otherpackage.go

df <- data.frame(ID=c(rep("A1",10),rep("A2",13),rep("A3",12)),
                 Values=c(10,2,4,23,10,5,20,15,13,21,15,9,19,5,14,25,18,19,31,26,4,21,4,6,7,12,15,18,25,20,16,29,21,19,10))

答案 1 :(得分:7)

我创建了一个包含代码的文件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

有效!

答案 2 :(得分:1)

在go版本> = 1.12中,有一些有关导入文件的新提示和一些更改。

1-您应该将文件放在另一个文件夹中,例如,我在“模型”文件夹中创建了一个文件,文件名为“ example.go”

2-要导入文件,必须使用大写字母!

3-对于要导入其他文件的变量,结构和函数,请使用大写字母

注意:无法将main.go导入另一个文件中。

文件目录为:

root
|_____main.go
|_____model
          |_____example.go

这是一个例子。

package model

import (
    "time"
)

var StartTime = time.Now()

这是main.go,要导入文件时应使用大写字母。 “ Mod”以大写字母开头

package main

import (
    Mod "./model"
    "fmt"
)

func main() {
    fmt.Println(Mod.StartTime)
}
相关问题