title: Golang模块编写技巧: 全局变量初始化
date: 2023-02-06 18:00:47.0
updated: 2023-02-06 18:00:47.0
url: https://liumou.site/doc/604
categories:

  • GO
    tags:
  • Go

在编写go项目的时候,有时候需要某个变量或者常量需要在全局使用,例如: 日志记录器,这时候就可以通过init函数进行定义初始化了,如下:

package gcs

import (
    "gitee.com/liumou_site/logger"
)

var logs *logger.LocalLogger // 日志打印

func init() {
    logs = logger.NewLogger(3)
    logs.Version = Version()
    logs.Modular = "gcs"
}

然后在项目中就可以直接使用logs这个实例去记录了,如下:

// AptLocalInstallStr 使用apt安装本地文件(字符串),直接安装,不会检测文件是否存在
func (api *ApiApt) AptLocalInstallStr(installStr, name string) bool {
    api.cmd.RunShell("apt install -y -f", installStr)
    if api.cmd.Err == nil {
        logs.Info("[ %s ] Installation succeeded", name)
    } else {
        logs.Error("[ %s ] Installation Failed: ", name)
    }
    return api.cmd.Err == nil
}