首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么我的全局变量没有跨包设置?

为什么我的全局变量没有跨包设置?
EN

Stack Overflow用户
提问于 2019-03-02 07:48:28
回答 1查看 387关注 0票数 -2

我有以下代码:

main.go:

代码语言:javascript
复制
package main

import (
    "fmt"

    "./globalvar"

    "github.com/Denton-L/gotest/usevar"
)

func main() {
    globalvar.GlobalNum = 42
    fmt.Println(globalvar.GlobalNum)
    usevar.PrintGlobal()
}

usevar/usevar.go:

代码语言:javascript
复制
package usevar

import (
    "fmt"

    "github.com/Denton-L/gotest/globalvar"
)

func PrintGlobal() {
    fmt.Println(globalvar.GlobalNum)
}

globalvar/globalvar.go:

代码语言:javascript
复制
package globalvar

var GlobalNum int

我正在用go build main.go编译。当我运行./main时,我得到

代码语言:javascript
复制
42
0

作为输出,但我期望

代码语言:javascript
复制
42
42

为什么会发生这种情况?

编辑:请注意,我可以访问全局变量,但它们包含意想不到的值,因此这不是Golang Global Variable access的副本。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54953841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档