Другой подход заключается в расширении класса массива для использования метода подкачки.Вы можете сделать это следующим образом:
object SwapArray {
class SwapArrayOp[A](array: Array[A]) {
def swap(x: Int, y: Int) = {
val a = array(x)
array(x) = array(y)
array(y) = a
}
}
implicit def array2Swap[A](array: Array[A]) = new SwapArrayOp(array)
}
Теперь вы можете менять значения следующим образом:
import SwapArray._
val array = Array(Array(1,2), Array(3,4))
array(0).swap(0,1)
println(array) // => Array(Array(2, 1), Array(3, 4))
Таким образом, вы можете использовать его повторно, и это даже выглядит лучше; -)