gpt4 book ai didi

scala - 宏、拼接和模式匹配

转载 作者:行者123 更新时间:2023-12-04 15:46:27 39 4
gpt4 key购买 nike

有没有办法在模式匹配中使用宏的参数?我想这样做:

def extr(X:AnyRef) = macro extrImpl

def extrImpl(c:Context)(X:c.Expr[AnyRef]):c.Expr[AnyRef] = {
import c.universe._

val tree = reify {
new {
def unapply(x:String):Option[String] = x match {
case X.splice => Some(x) //error
case _ => None
}
}
}.tree
c.Expr(c.typeCheck(tree))
}

但不幸的是,编译器说“需要稳定的标识符,但找到了 X.splice”。通常,人们会通过首先分配给一个 val 来解决这个问题,例如:
val XX = X.splice

但当然这也不适用于 splice。

最佳答案

不幸的是,现在不可能(并且在 2.10.0-final 中也不可能),但我们有一些工作可能有助于后续发布:)

关于scala - 宏、拼接和模式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12638293/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com