为了账号安全,请及时绑定邮箱和手机立即绑定

如何访问全局变量

如何访问全局变量

Go
一只斗牛犬 2021-12-07 16:13:54
如何访问在不同 .go 包/文件中的 main.go 中声明/初始化的变量?一直告诉我变量未定义(我知道全局变量不好,但这只是用作时间戳)在 main.govar StartTime = time.Now()func main(){...}尝试在不同的 .go 文件中访问 StartTime 但一直未定义 StartTime
查看完整描述

3 回答

?
不负相思意

TA贡献1777条经验 获得超10个赞

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


main.go


var StartTime = time.Now()

func main() {

   otherPackage.StartTime = StartTime

}

其他包.go


var StartTime time.Time


查看完整回答
反对 回复 2021-12-07
?
手掌心

TA贡献1942条经验 获得超3个赞

我创建了一个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

有用!


查看完整回答
反对 回复 2021-12-07
?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

我建议使用常用的导入方式。


首先我将解释它称为“相对导入”的方式,也许这种方式会导致一些错误


其次,我将解释常见的导入方式。


第一的:


在 go version >= 1.12 中,有一些关于导入文件的新提示和一些变化。


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


2- 导入文件时必须使用大写!


3- 将大写用于要导入其他文件的变量、结构和函数


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


文件目录为:


root

|_____main.go

|_____model

          |_____example.go

这是一个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)

}

笔记!!!


注意:我不推荐这种类型的导入!


第二:


(正常进口)


导入文件的更好方法是:


你的结构应该是这样的:


root

|_____github.com

         |_________Your-account-name-in-github

         |                |__________Your-project-name

         |                                |________main.go

         |                                |________handlers

         |                                |________models

         |               

         |_________gorilla

                         |__________sessions


这是一个例子:


package main


import (

    "github.com/gorilla/sessions"

)


func main(){

     //you can use sessions here

}

所以你可以在任何你想要的地方导入“github.com/gorilla/sessions”......只需导入它。


查看完整回答
反对 回复 2021-12-07
  • 3 回答
  • 0 关注
  • 208 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信