Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Menyenaraikan Semua Jenis yang Dieksport dalam Pakej Go?

Bagaimanakah Saya Boleh Menyenaraikan Semua Jenis yang Dieksport dalam Pakej Go?

Susan Sarandon
Lepaskan: 2024-12-18 00:45:10
asal
994 orang telah melayarinya

How Can I List All Exported Types Within a Go Package?

Cara Menyenaraikan Semua Jenis yang Dieksport dalam Pakej

Dalam Go, jenis peringkat pakej boleh dieksport dengan menggunakan huruf besar pertamanya. Ini membolehkan pakej lain mengakses jenis ini. Walau bagaimanapun, tiada fungsi terbina dalam untuk menyenaraikan secara langsung semua jenis yang dieksport dalam pakej.

Salah satu cara untuk mendapatkan maklumat ini adalah dengan menggunakan pakej go/importer. Begini caranya:

package main

import (
    "fmt"
    "go/importer"
    "go/pkg"
)

func main() {
    // Import the package you want to inspect
    pkg, err := importer.Default().Import("demo")
    if err != nil {
        fmt.Println("error:", err)
        return
    }

    // Iterate over the scopes and print the exported type names
    for _, declName := range pkg.Scope().Names() {
        fmt.Println(declName)
    }
}
Salin selepas log masuk

Kaedah pengimport.Default().Import() mengambil laluan pakej sebagai hujah dan mengembalikan objek pakej yang mewakili maklumat tentang pakej. Kaedah pkg.Scope() mengembalikan skop pakej, yang mengandungi semua jenis, fungsi dan pembolehubah yang dieksport dan tidak dieksport.

Nota: Pendekatan ini mungkin tidak berfungsi dalam Go Playground kerana kepada batasan dalam persekitaran.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyenaraikan Semua Jenis yang Dieksport dalam Pakej Go?. 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