我正在尝试在 Scala 中构建内部 DSL。我有以下类型:
case class A(name:String)
case class Group(list:A*) // it can also be list:List[A]
使用正常语法创建一组 A 如下:
val group1 = Group(A("a1"), A("a2"), ...)
这很丑陋。如果可能的话,我想在(A("a1"), A("a2"), ...)
以后或以后介绍一个小组("a1", "a2", ...)
。
我自己无法弄清楚如何转换(A("a1"), A("a2"), ...)
为Group(A("a1"), A("a2"), ...)
. 如果我们可以转换(A("a1"), A("a2"), ...)
为 Group 类的实例就好了。(我不在乎我是否不能在里面指定无限数量的 A。最多 8 个 A 就足够了)
所以我的问题是:有没有办法将元组转换为类的特定实例?如果没有,您将如何解决这个问题?