在Golang 中獲取包中的所有結構
您可以透過存取包中的AST 表示來枚舉包中的所有結構。一種方法是解析套件原始程式碼,這需要克隆 Go 儲存庫並提取相關資料。
下面的程式碼概述如何使用AST 解析器實現此目的:
<code class="go">func (P *Printer) Type(t *AST.Type) int { separator := semicolon; switch t.form { case AST.STRUCT, AST.INTERFACE: switch t.form { case AST.STRUCT: P.String(t.pos, "struct"); case AST.INTERFACE: P.String(t.pos, "interface"); } if t.list != nil { P.separator = blank; P.Fields(t.list, t.end); } separator = none; } }</code>
Go 的linter 的另一個範例說明了類似的方法:
<code class="go">case *ast.StructType: for _, f := range v.Fields.List { for _, id := range f.Names { check(id, "struct field") } }</code>
透過遍歷AST 表示,您可以收集有關特定包內所有結構的信息,為您提供所需名稱或介面的列表。
以上是如何在Golang中取得包內所有結構體的列表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!