0

我想得到定义为的StaticAnnotation的参数:

class Log(logTag: List[LogTag] = Info() :: Nil )
         (implicit logger: String => Unit = a => {println(a)})
  extends scala.annotation.StaticAnnotation {
  inline def apply(defn: Any): Any = meta {
    val logTag = ??? //todo
    val logger = ??? //todo
  }
}

如何在块中获取logTaglogger函数值meta?我似乎有关于这一点的元教程。Lit只是引用Int/Double等,而不是自定义类类型。

4

1 回答 1

0

您可以解构this为 ascala.meta.Tree以获取类参数。有关示例,请参见http://scalameta.org/tutorial/#HowdoIpassanargumenttothemacroannotation%3F

于 2017-04-27T08:44:02.603 回答