S: Bagaimanakah cara saya menyenaraikan semua kaedah awam bagi pakej dalam Go?
A : Penyenaraian kaedah awam bagi pakej dalam Go tidak boleh dilakukan secara langsung disebabkan oleh pengoptimuman Go yang mengalih keluar fungsi yang tidak digunakan. Walau bagaimanapun, terdapat penyelesaian yang berpotensi bergantung pada kes penggunaan anda:
Analisis Statik:
Contoh:
import ( "fmt" "go/ast" "go/parser" "go/token" "os" ) // ... funcs := []*ast.FuncDecl{} for _, pack := range packs { for _, f := range pack.Files { for _, d := range f.Decls { if fn, isFn := d.(*ast.FuncDecl); isFn { funcs = append(funcs, fn) } } } } fmt.Printf("all funcs: %+v\n", funcs)
Seruan Luar:
Atas ialah kandungan terperinci Bagaimana Saya Boleh Menyenaraikan Kaedah Awam Pakej Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!