| // +build ignore | |
| package main | |
| import ( | |
| "fmt" | |
| "go/ast" | |
| "go/parser" | |
| "go/token" | |
| ) | |
| func main() { | |
| src := `package hack; import "net/http"; var i http.Handler` | |
| f, _ := parser.ParseFile(token.NewFileSet(), "", src, 0) | |
| decl := f.Decls[1].(*ast.GenDecl) // var i http.Handler | |
| spec := decl.Specs[0].(*ast.ValueSpec) // i http.Handler | |
| sel := spec.Type.(*ast.SelectorExpr) // http.Handler | |
| id := sel.Sel.Name // Handler | |
| fmt.Println(id) | |
| } |