运维开发网

如何在Scala 2.11中查找封闭源文件的名称

运维开发网 https://www.qedev.com 2020-06-07 19:44 出处:网络 作者:运维开发网整理
在编译时,如何在 scala 2.11中检索当前源文件的名称(代码编写的位置)? 在REPL中,名称是控制台,但这表明位置知道其来源. scala> import scala.language.experimental.macros import scala.language.experimental.macros scala> import scala.reflect.macros.white
在编译时,如何在 scala 2.11中检索当前源文件的名称(代码编写的位置)? 在REPL中,名称是控制台,但这表明位置知道其来源.

scala> import scala.language.experimental.macros
import scala.language.experimental.macros

scala> import scala.reflect.macros.whitebox.Context
import scala.reflect.macros.whitebox.Context

scala> def f(c: Context): c.Tree = { import c._,universe._ ; Literal(Constant(c.enclosingPosition.source.file.name)) }
f: (c: scala.reflect.macros.whitebox.Context)c.Tree

scala> def g: String = macro f
defined term macro g: String

scala> g
res0: String = <console>
0

精彩评论

暂无评论...
验证码 换一张
取 消