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) } }
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!