コンストラクタの引数を交換することは可能ですか? 次の例を検討してください。
case class Foo(a:Int, b:Int) {
if (a > b) {
val tmp = a
a = b
b = tmp
}
}
4 行目でval を再割り当てするため、コンパイラはエラーをスローしますが、aこれはまったく問題ありません。ただし、不変オブジェクトが必要です。aしたがって、 andbを変数として宣言することはできません。
この問題を解決する既知のパターンはありますか?