大部分的语言或多或少提供了一些元编程机制,使得开发者能够对现有的语法语义进行拓展,能够极大的提高编程体验和开发效率。可能一提到元编程,大家很容易想到大名鼎鼎的 Lisp
语言(你可能会说:“难道不是 Cpp?”,我又不会模板元编程,你让我讲啥 x)。得益于其本身接近语法树的语法,使得 Lisp 开发者可以很容易操作语法节点,甚至实现 “自己的 Lisp”,于是就才涌现了很多的 Lisp 方言。当然,本篇文章并不是为了讨论 Lisp,只是想要就 “元编程” 这一个角度,来谈谈 C# 和 Rust 语言各自的机制。
关于元编程是什么,简单来说是用程序编写程序
更详细的描述建议参考 wiki : https://zh.wikipedia.org/wiki/%E5%85%83%E7%BC%96%E7%A8%8B