从 Scala 宏注解中获取参数解释了如何从宏注解中获取参数。但是,如果我有几个具有默认值的参数:
class Foo(b: Boolean = false, i: Int = 0) extends StaticAnnotation { ... }
我需要写(基于该问题的答案)
val (b, i) = c.prefix.tree match {
case q"new Foo(..$args)" => ???
}
中的逻辑???
似乎变得非常讨厌:我需要同时处理位置参数和命名参数,不能简单地访问默认值等。有没有办法简化它?