Scala 3 中的宏

教程

语言
此文档页面特定于 Scala 3,并且可能涵盖 Scala 2 中不可用的新概念。除非另有说明,此页面中的所有代码示例均假定你使用的是 Scala 3。

本教程涵盖了在 Scala 3 中编写宏涉及的所有功能。

Scala 3 的元编程 API 分层设计,以逐步支持不同级别的用例。每个连续的层都会公开额外的抽象并提供更细粒度的控制。

  • 作为一个起点,新的 inline 功能 允许将一些抽象(值和方法)标记为静态可约。它提供了宏和其他元编程实用程序的入口点。

  • 编译时操作提供其他元编程实用程序,可以在inline方法中使用(例如,改进错误报告),而无需定义宏。

  • inline方法开始,是明确操作程序的程序。

    • 宏可以根据引号表达式高级API来定义,该API允许对程序表达式进行简单的构造和解构。

    • 宏还可以根据反射的更低级API来定义,该API允许详细检查程序。

本教程使用 Scala 3.0.0-RC3 的 API。该 API 在此修订版中进行了许多小的更改。

🚧 我们仍在编写本教程。您可以帮助我们 🚧

此页面的贡献者