获取定义值的名称

Get name of defining val

我想获取我的宏输出分配给的变量的名称。与 build.sbt 中的 project 完全一样。如果有的话,我更喜欢开箱即用的解决方案(库),因为它看起来很一般。

这是一个小例子

val someValue = myMacro()

作为 myMacro() 的输出,我想得到字符串 "someValue"

您正在寻找 SourceCode.

示例:

scala> def myName(implicit name: sourcecode.Name) = name.value
myName: (implicit name: sourcecode.Name)String

scala> val foo = myName
foo: String = foo