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 で十分です)
だから私の質問は:タプルをクラスの特定のインスタンスに変換する方法はありますか? そうでない場合、この問題をどのように解決しますか?