2

我正在阅读有关 Scala 3 的元编程手册,但没有找到我在当前项目中大量使用的 quasiqotes。像这样解构树的替代方法是什么:

def impl(c: blackbox.Context): c.Expr[Unit] = {
    import c.universe._
    
    val someTree = //...
    someTree match {
        case typedef @ q"$mods type $name[..$tparams] >: $low <: $high" =>
            //...
        
    }
}

如何通过树解构将此类代码移植到 Scala 3?

4

1 回答 1

4

Expr您可以在 Scala 3中对 s 进行模式匹配:

https://dotty.epfl.ch/docs/reference/metaprogramming/macros.html#pattern-matching-on-quoted-expressions

于 2020-12-22T12:31:25.080 回答