使用go / types包如何实现类型声明?

时间:2018-11-17 23:26:29

标签: go

使用here可用的go/types包来解释go程序源代码ast,我如何针对表达式的类型实现类型断言?

在下面的源代码中,我检查了一个ast查找调用表达式,提取了第一个参数以测试其类型

var p *loader.Program
ast.Inspect(f, func(n ast.Node) bool {
    if call, ok := n.(*ast.CallExpr); ok {
        if p.TypeOf(call.Args[0]).String() == "context.Context" { ... }
    }
})

如何使用标准库中提供的功能,例如types.AssertableTotypes.ConvertibleTo等来改进提供的代码段?

0 个答案:

没有答案