Mengakses Jenis Eksport Merentas Pakej
Dalam Go, jenis yang dieksport boleh diakses oleh pakej lain. Ini membolehkan penggunaan semula dan modulariti dalam reka bentuk kod. Walau bagaimanapun, bagaimana anda boleh mengakses semua jenis eksport yang ditentukan daripada pakej tertentu?
Pertimbangkan contoh berikut:
package demo type People struct { Name string Age uint } type UserInfo struct { Address string Hobby []string NickNage string }
Dalam pakej yang berasingan, katakan,
import "demo"
Daripada pakej lain ini, kami berusaha untuk mendapatkan semula semua jenis yang dieksport yang ditakrifkan dalam pakej demo. Untuk mencapai matlamat ini, kami boleh memanfaatkan pakej go/importer:
package main import ( "fmt" "golang.org/x/tools/go/importer" ) func main() { pkg, err := importer.Default().Import("demo") if err != nil { fmt.Println("error:", err) return } for _, declName := range pkg.Scope().Names() { fmt.Println(declName) } }
Kod ini mengimport pakej demo menggunakan pengimport dan beralih ke atas nama yang ditentukan dalam skopnya. Output yang terhasil akan menyenaraikan semua jenis yang dieksport, dalam kes ini:
People UserInfo
Walau bagaimanapun, perlu diingat bahawa menggunakan pendekatan ini boleh mengakibatkan ralat pada Go Playground.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengakses Semua Jenis yang Dieksport daripada Pakej Go Tertentu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!