2

我正在使用作为 Scala 宏天堂一部分的宏注释(链接)。

在他们的示例中,他们使用了一个名为的宏注释identity,它不带参数。但是,我尝试实现的宏注释确实需要一个参数:

@compileTimeOnly("enable macro paradise to expand macro annotations")
class f(id: String) extends StaticAnnotation {
  def macroTransform(annottees: Any*) = macro identityMacro.impl
}

object identityMacro extends App {
  def impl(c: Context)(annottees: c.Expr[Any]*) = {
    import c.universe._
    // how to access id here?
  }
}

我的问题:如何在宏id的实现中访问 的值?identityMacro.impl我尝试将它作为额外参数传递给,macroTransform但这不起作用。我假设我必须通过上下文访问它?

4

0 回答 0