9

Scala で 2D 配列のディープ コピーを行うにはどうすればよいですか?

例えば

val a = Array[Array[Int]](2,3)
a(1,0) = 12

val b に a の値をコピーさせたいのですが、同じ配列を指さないようにします。

4

3 に答える 3

2

2回転置するだけ

a.transpose.transpose
于 2015-10-20T11:59:03.420 に答える
0

与えられた:

val a = Array[Array[Int]]

あなたが試すことができます:

for(inner <- a) yield {
  for (elem <- inner) yield {
    elem
  }
}

より深い質問は、なぜ int でそうしたいのかということです。不変型を使用することの要点は、この種の構造を正確に回避することです。

より一般的な がある場合Array[Array[T]]、主な関心事はT、配列をディープ クローンする方法ではなく、 のインスタンスをクローンする方法です。

于 2009-12-11T22:57:08.407 に答える