Nim 是一款 Python 风格的静态类型语言。但事实上,除了缩进语法外,Nim 和 Python 并没有太多相似之处。相对于 Python,Nim 更多地吸收了 Ada 和 Lisp 等语言的特性。
Nim 编译器通过生成 C 或 Obj-C 中间代码的方式来进行本地编译,所以需要依赖一套外部编译器。Nim 也可以生成 Javascript 代码。此外,还有以脚本方式运行的 NimScript。
OOP 的一个特性就是支持多态,而动态分发(Dynamic Dispatch)就是实现多态的基础。在讲解 Nim 的动态分发实现前,先讲一下其他语言是如何实现的。
……