首页 > 解决方案 > Scala 3 中的宏注解

问题描述

以下是来自Macros: the Plan for Scala 3 三年多前的引述:

例如,一个人将能够定义一个宏注解@json,它将一个 JSON 序列化器添加到一个类型中。

知道如何/如果这在 Scala 3 中实际上可行吗?

更一般地说,Scala 3 中是否有任何东西可以提供“宏注释”功能?以下是来自Macro Annotations - Scala 2.13的引用:

与之前版本的宏天堂不同,2.0 中的宏注释在以下意义上是正确的:1) 不仅适用于类和对象,还适用于任意定义,2)允许扩展类以修改甚至创建伴随对象

标签: scalascala-macrosscala-3scala-macro-paradise

解决方案


截至 2021 年 6 月,Scala 3 不支持宏注释,并且在文档中的任何地方都没有提到它们。

现在,如果您想生成方法、类或对象,我相信您必须使用 scalameta 或编写编译器插件。

显然,这种情况将来可能会改变,宏注解一开始也不是 Scala 2 的一部分。


推荐阅读