此文档页面专门针对 Scala 2 中提供的功能,这些功能要么已在 Scala 3 中删除,要么已被其他功能取代。除非另有说明,此页面中的所有代码示例均假定你正在使用 Scala 2。
实验性
自 2.11 以来,Scala 宏提供的功能和 API 几乎保持不变。没有计划用新功能扩展当前的 def 宏。正在进行开发适用于 Dotty 的宏系统,计划在 2020 年初作为 Scala 3 发布。在此 处阅读 Scala 3 的公告。
如果你需要编写宏,建议使用 此处记录的 def 宏,这些宏包含在 Scala 编译器中。即使 ScalaTest、sbt 和 Play Framework 等广泛使用的库仍被标记为实验性,但它们也使用 def 宏。