Golang中设置全局变量并在其他文件中使用

 更新时间:2024年01月07日 11:39:36   作者:小小平不平凡  
全局变量是被整个程序都可见的变量,通常用于存储程序中需要共享的数据,本文就来介绍一下Golang中设置全局变量并在其他文件中使用的方法,感兴趣的可以了解一下

一、定义全局变量

在Go语言中,全局变量的定义方法很简单。你只需要在函数之外定义变量,该变量就会成为全局变量

test/library/utils/init.go

package utils

// 定义全局变量ServicePool
var ServicePool = make(map[string]interface{})

func DemoMethod() {
	fmt.Println(ServicePool)
}

二、在其他文件中使用init.go中定义的ServicePool全局变量

  • 在包含全局变量的文件中,确保全局变量在函数之外声明,以使其成为包级别的变量
  • 在要使用该全局变量的文件中,导入包含全局变量的包
  • 在使用全局变量的文件中,可以直接访问该全局变量

注意事项:在Go语言中,当你使用var关键字定义全局变量时,如果不使用make函数来初始化该变量,它将被赋予零值。对于数值类型,零值是0;对于字符串类型,零值是空字符串;对于指针类型,零值是nil

use.go

package test

import (
	"context"
	"encoding/json"
	"fmt"
	"io"
	"math/rand"
	"net/http"
	"strings"
	"time"
	
	"test/library/utils"
)

func Test(ctx context.Context, w ghttp.Writer, req ghttp.Request) {
	fmt.Println("ctx:", ctx)
	fmt.Println("req:", req)
	fmt.Println("w:", w)
	
	name, ok := utils.ServicePool["name"]
	if !ok {
		name = ""
	}
}

到此这篇关于Golang中设置全局变量并在其他文件中使用的方法的文章就介绍到这了,更多相关Golang设置全局变量内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • Golang中重复错误处理的优化方法

    Golang中重复错误处理的优化方法

    这篇文章主要给大家介绍了关于Golang中重复错误处理优化的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Golang具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-04-04
  • Go关键字defer的使用和底层实现

    Go关键字defer的使用和底层实现

    defer是Go语言的关键字,一般用于资源的释放和异常的捕捉,defer语句后将其后面跟随的语句进行延迟处理,就是说在函数执行完毕后再执行调用,也就是return的ret指令之前,本文给大家介绍了Go关键字defer的使用和底层实现,需要的朋友可以参考下
    2023-11-11
  • go 判断两个 slice/struct/map 是否相等的实例

    go 判断两个 slice/struct/map 是否相等的实例

    这篇文章主要介绍了go 判断两个 slice/struct/map 是否相等的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • go中实现字符切片和字符串互转

    go中实现字符切片和字符串互转

    这篇文章主要为大家详细介绍了go语言中如何实现字符切片和字符串互转,文中的示例代码讲解详细,具有一定的学习价值,感兴趣的小伙伴可以了解一下
    2023-11-11
  • 适合PHP同学的GoFrame框架使用体验及学习建议

    适合PHP同学的GoFrame框架使用体验及学习建议

    这篇文章主要为大家介绍了非常适合PHP同学使用的GoFrame框架设计思想使用体验及学习建议介绍,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • Go中的new()和make()函数区别及底层原理详解

    Go中的new()和make()函数区别及底层原理详解

    这篇文章主要为大家介绍了Go中的new()和make()函数区别及底层原理详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • Go标准库bytes|strings使用解析

    Go标准库bytes|strings使用解析

    本文介绍了Go语言中`strings`和`bytes`库的基本功能、设计思想、核心函数以及应用场景,这两个库提供了丰富的工具函数来处理字符串和字节切片,适用于各种字符串操作需求,通过对比两者的性能和适用场景,可以帮助开发者更好地选择合适的工具库来提高代码效率和性能
    2026-01-01
  • 一文带你玩转Golang Prometheus Eexporter开发

    一文带你玩转Golang Prometheus Eexporter开发

    本文分两大块,一是搞清楚prometheus四种类型的指标Counter,Gauge,Histogram,Summary用golang语言如何构造这4种类型对应的指标,二是搞清楚修改指标值的场景和方式,感兴趣的可以了解一下
    2023-02-02
  • Go语言中Recover机制的使用

    Go语言中Recover机制的使用

    Go语言的recover机制通过defer函数捕获panic,实现异常恢复与程序稳定性,具有一定的参考价值,感兴趣的可以了解一下
    2025-06-06
  • VScode下配置Go语言开发环境(2023最新)

    VScode下配置Go语言开发环境(2023最新)

    在VSCode中配置Golang开发环境是非常简单的,本文主要记录了Go的安装,以及给vscode配置Go的环境,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10

最新评论