一、定义全局变量
在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 = ""
}
}