# 第七章 Go 和 AST

AST是抽象语法树的缩写（abstract syntax tree），一般可以用一个树型结构表示源代码的抽象语法结构。比如一个算术表达式可以用AST表示，if分支结构、for循环结构也可以用AST表示。因为树是一个任意分叉的，AST也可以非常容易if分支、for循环等嵌套的结构。了解AST不仅仅可以加深对语言本身的理解，基于AST也可以做很多有意义的事情（比如分析某类型的BUG、进行某种优化等）。更让人兴奋的是Go语言标准库已经内置了强大易用的AST库，让我们了解一下这种神秘的技术吧。
