标签: go abstract-syntax-tree
查看Go AST documentation,我没有看到任何节点类型代表代码中的nil。 BasicLit没有在它接受的令牌类型列表中覆盖它,事实上,当我查看源go/token时,我根本看不到nil令牌!
nil
go/token
如果我想创建if x != nil格式的AST,我该如何处理nil?
if x != nil
答案 0 :(得分:2)
根据Go规范,nil是预先声明的标识符。因此,它在AST中由*ast.Ident表示:
*ast.Ident
node := ast.NewIdent("nil")