在 Go 中,可以列舉特定套件中定義的所有結構。為了實現這一點,最有效的解決方案包括解析 Go 原始檔、提取抽象語法樹 (AST) 以及隔離 ast.StructType 實例。
hg 指令可用於複製 Go 原始碼:
hg clone https://code.google.com/p/go/
隨後,您可以透過解析原始檔來隔離 ast.StructType 實例。以下是 linter go/lint 提供的範例,示範如何擷取結構體欄位名稱:
case *ast.StructType: for _, f := range v.Fields.List { for _, id := range f.Names { check(id, "struct field") } }
透過解析 AST 並擷取 ast.StructType 實例,您可以取得其中所有結構體的清單指定包裹。
以上是如何檢索 Go 包中的所有結構?的詳細內容。更多資訊請關注PHP中文網其他相關文章!