デフォルト値を持つパラメータを取るクラス コンストラクタがあるとします。
class A(val p1 : Int = 3, val p2 : Int = 4)
このクラスを制御できず、とにかく変更できないとしましょう。私がやりたいことは、p1 = 5、p2 = (条件 1 == true の場合、それ以外の場合はデフォルト値 5) で A のコンストラクターを呼び出すことです。これを行う1つの方法は
if(condition1)
x = new A(5,5)
else
x = new A(5)
ご覧のとおり、多くのパラメーターがあり、それぞれを条件付きで指定する必要がある場合、これは簡単に大きくなります。私が欲しいのは次のようなものです
x = new A(p1 = 5, p2 = <if condition1 = true then 5 else default>)
どうやってやるの?クラス A のフィールドは val であるため、A をインスタンス化した後に変更できないことに注意してください。