scala动态重命名case类属性

时间:2017-06-11 11:07:37

标签: scala scala-macros case-class

我有一个对象

object Helper{
val fieldName = "fooBar
}

提供字段的名称。 案例类

case class BarBaz(fieldOne:Int, fieldTwo:String)

但是,我想提及fieldTwo来提及案例类的参数名称,而不是Helper.fieldname

如何在Scala中实现这一目标?也许通过宏?或者是否有更简单的可能性? 即。

case class BarBaz(fieldOne:Int, Helper.fieldName:String)

将是所需的输出,但不会编译。

1 个答案:

答案 0 :(得分:1)

我认为它不可能,因为定义变量意味着指向存储值的某个内存位置。因此,Dim found = name.Any(Function(n) n.Equals(search, StringComparison.InvariantCultureIgnoreCase)) 将变量名称视为内存位置地址,而不是存储在该位置的值,并且不允许使用变量名称的内存位置。