已弃用:Scala 2 宏
先前实验性的宏系统已被删除。
取而代之的是一个更简洁、更受限制的系统,它基于两个互补的概念:inline
和 '{ ... }
/${ ... }
代码生成。'{ ... }
延迟代码的编译并生成包含代码的对象,而 ${ ... }
则评估生成代码的表达式并将其插入到周围的 ${ ... }
中。在这种情况下,标记为内联的定义包含 ${ ... }
,则为宏,${ ... }
内部的代码在编译时执行并生成 '{ ... }
形式的代码。此外,可以使用更复杂的反射 API 来检查和创建代码内容,作为 '{ ... }
/${ ... }
框架的扩展。