Scala で 2D 配列のディープ コピーを行うにはどうすればよいですか?
例えば
val a = Array[Array[Int]](2,3)
a(1,0) = 12
val b に a の値をコピーさせたいのですが、同じ配列を指さないようにします。
2回転置するだけ
a.transpose.transpose
与えられた:
val a = Array[Array[Int]]
あなたが試すことができます:
for(inner <- a) yield {
for (elem <- inner) yield {
elem
}
}
より深い質問は、なぜ int でそうしたいのかということです。不変型を使用することの要点は、この種の構造を正確に回避することです。
より一般的な がある場合Array[Array[T]]
、主な関心事はT
、配列をディープ クローンする方法ではなく、 のインスタンスをクローンする方法です。