被导入包:
```go
package utils
import (
"github.com/elastic/go-elasticsearch/v6"
"log"
)
var EsClient *elasticsearch.Client
func init() {
host := Cfg.Section("es").Key("host").String()
if host == "" {
log.Fatal("es Host 未设置")
}
cfg := elasticsearch.Config{
Addresses: []string{host},
}
EsClient, err := elasticsearch.NewClient(cfg)
if err != nil {
log.Fatal("连接失败", err)
}
_, err = EsClient.Info()
if err != nil {
log.Fatalf("连接出错:"+host, err)
}
fmt.Println(EsClient) // &{0xc000166000 0xc000162000}
}
```
main.go
```go
package main
import (
"data_push/utils"
"fmt"
)
func main() {
fmt.Println(utils.EsClient) // 结果为 nil
}
```
main 函数中输出 utils 包中 EsClient 变量,结果为 nil,但是 utils 包中初始化后值不为 nil,这是什么原因呢?
有疑问加站长微信联系(非本文作者)