Skip to content

Goで静的解析する際のテンプレート(loader版)

Goで静的解析する際のテンプレート(標準版)もあるけれど、今なら loader を使う方が良いと思う。

今はGoで静的解析する際のテンプレート(packages版)の方が良いらしい。

package main
import (
"fmt"
"go/types"
"log"
"golang.org/x/tools/go/loader"
)
func main() {
var c loader.Config
c.Import("net/url")
p, err := c.Load()
if err != nil {
log.Fatal(err)
}
pkg := p.Package("net/url")
t := pkg.Pkg.Scope().Lookup("URL").Type().(*types.Named)
for i := range t.NumMethods() {
fmt.Println(t.Method(i))
}
}