4.7 总结

至此,我们就完成了对 Go 类型检查器的总体逻辑分析。但类型检查的实现非常复杂,开发工作也一直在活跃进行,本文也只是努力尝试着描绘一个梗概,想要了解每个细节,还需要深入源码仔细学习。对于想要进一步学习的同学,作者鼓励通过如下方式进行:

  • 把重放轻,熟悉数据结构及总体逻辑框架,不要纠缠于实现细节

  • 有的放矢,如果有特别想要学习的部分,则找到想要学习的那部分代码细看。例如 Go 如何判断一个类型是否实现了某个接口。

  • 反向推敲,多通过 UT 执行代码,多修改源码查看效果

对任何语言而言,类型系统都是很重要也很复杂的一个模块,本章中涉及到的知识虽然不会在日常的应用开发中直接用到,但对类型系统的深入理解对我们掌握 Go 语言大有裨益,甚至是精通 Go 语言的必要前提。掌握了编译器的内部实现之后,我们看待语言和理解程序的视角会发生根本性的改变。

最后更新于