相关疑难解决方法(0)

Scala Macro获得术语名称的值

我有以下代码:

usage.scala

object Test extends App {
   import Macros._

   val f = 1
   Macros.get(f) 
}
Run Code Online (Sandbox Code Playgroud)

macros.scala

import language.experimental.macros
import scala.reflect.macros.Context

object Macros {
  def get(a: Int) = macro getImpl

  def getImpl(c: Context)(a: c.Expr[Int]) = {
    import c.universe._

     println(showRaw(a))
  }
}    
Run Code Online (Sandbox Code Playgroud)

它返回:

Expr(Select(This(newTypeName("Test")), newTermName("f")))

如何从termName("f")一个1值中提取?有可能用宏吗?

scala scala-macros

6
推荐指数
1
解决办法
1681
查看次数

标签 统计

scala ×1

scala-macros ×1