使用 Scala 宏,我想访问函数 f 的源代码。
这是我的问题的简化示例:
def logFImplementation(f: => Boolean) {
val sourceCodeOfF: String = ... // <-- how to get source code of f??
println("Scala source of f=" + sourceCodeOfF)
}
Run Code Online (Sandbox Code Playgroud)
因此对于:
logFImplementation { val i = 5; List(1, 2, 3); true }
Run Code Online (Sandbox Code Playgroud)
它应该打印:
Scala source of f=val i: Int = 5; immutable.this.List.apply[Int](1, 2, 3); true
Run Code Online (Sandbox Code Playgroud)
(现在我测试了宏以在运行时访问源代码文本,它非常有用,{ val i = 5; List(1, 2, 3); true }.logValueImpl但f.logValueImpl它只是打印f.)
感谢您的任何建议。