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
Lepaskan: 2024-11-30 21:04:14
asal
109 orang telah melayarinya

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
}
Salin selepas log masuk

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
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan