Rumah >pembangunan bahagian belakang >Golang >Bila dan Mengapa Menggunakan Pengecam Kosong dalam Go Imports?

Bila dan Mengapa Menggunakan Pengecam Kosong dalam Go Imports?

Susan Sarandon
Susan Sarandonasal
2024-11-30 21:04:14183semak imbas

When and Why Use Blank Identifiers in Go Imports?

Menggunakan Pengecam Kosong dalam Go Imports untuk Permulaan

Spesifikasi Go mengesyorkan menggunakan pengecam kosong sebagai nama pakej yang jelas untuk mengimport pakej semata-mata untuk kesan sampingannya. Walau bagaimanapun, tujuan binaan ini mungkin tidak jelas.

Satu kes penggunaan sebenar adalah untuk memulakan pemacu pangkalan data tanpa menggunakan fungsi eksport mereka. Pertimbangkan contoh berikut:

package main

import (
    _ "github.com/jackc/pgx/v4/reflect"
    "github.com/jackc/pgx/v4"
)

func main() {
    conn, err := pgx.Connect(ctx, "user=jack password=secret database=world")
    if err != nil {
        log.Fatal(err)
    }
    _ = conn
}

Dalam coretan ini, import _ "github.com/jackc/pgx/v4/reflect" menyediakan sambungan pangkalan data dengan memulakan pemacu PostgreSQL dengan fungsi init. Memandangkan kami tidak perlu menggunakan mana-mana fungsi yang dieksport bagi pakej reflect, kami menggunakan pengecam kosong dan bukannya alias pakej.

Contoh lain ialah menyediakan keadaan global:

package main

import (
    _ "github.com/go-redis/redis/v9"
    "log"
)
func init() {
    // Set up global Redis client
    client := redis.NewClient(redis.Options{
        Addr: "localhost:6379",
    })
    if err := client.Ping().Err(); err != nil {
        log.Fatalf("unable to connect to Redis: %v", err)
    }
    clientInfo, err := client.Info("Memory").Result()
    if err != nil {
        log.Fatalf("unable to get Redis info: %v", err)
    }
    log.Printf("Redis info: %s", clientInfo)
}

func main() {
    // Do stuff with the initialized global Redis client
}

Di sini, import _ "github.com/go-redis/redis/v9" menggunakan fungsi init untuk mewujudkan sambungan Redis global. Dengan menggunakan pengecam kosong, kami mengelak daripada menggunakan alias pakej dan membenarkan pengkompil mengabaikannya, sementara masih mendapat manfaat daripada pengamulaan.

Atas ialah kandungan terperinci Bila dan Mengapa Menggunakan Pengecam Kosong dalam Go Imports?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn