edo*_*fic 4 macros scala scala-macros
在宏内部,我如何要求编译器推断构造树的类型?我只找到Context.typeCheck,但它只检查类型但不返回结果.
如果您对树进行了类型检查,则可以使用其tpe方法:
scala> def impl(c: Context) = c.literal(c.typeCheck(c parse "1+1").tpe.toString)
impl: (c: scala.reflect.macros.Context)c.Expr[String]
scala> def mac = macro impl
mac: String
scala> println(mac)
Int(2)
Run Code Online (Sandbox Code Playgroud)
当然,你也可以将它包装在一个表达式中,但是如果你只是想要这个类型就没有必要了.
| 归档时间: |
|
| 查看次数: |
1097 次 |
| 最近记录: |