21 lines
400 B
Go
21 lines
400 B
Go
package ast
|
|
|
|
import (
|
|
"go/ast"
|
|
)
|
|
|
|
// 查询特定function方法
|
|
func FindFunction(astNode ast.Node, FunctionName string) *ast.FuncDecl {
|
|
var funcDeclP *ast.FuncDecl
|
|
ast.Inspect(astNode, func(node ast.Node) bool {
|
|
if funcDecl, ok := node.(*ast.FuncDecl); ok {
|
|
if funcDecl.Name.String() == FunctionName {
|
|
funcDeclP = funcDecl
|
|
return false
|
|
}
|
|
}
|
|
return true
|
|
})
|
|
return funcDeclP
|
|
}
|