Как скопировать двумерный массив в Котлин?

Этот метод работает отлично. Однако, я думаю, что это не работает.

fun getCopy(array: Array<BooleanArray>): Array<BooleanArray> { val copy = Array(array.size) { BooleanArray(array[0].size) { false } } for (i in array.indices) { for (j in array[i].indices) { copy[i][j] = array[i][j] } } return copy } 

Есть ли более функциональный способ?

Вы можете использовать clone так:

 fun Array<BooleanArray>.copy() = map { it.clone() }.toTypedArray() 

или если вы хотите сохранить некоторые распределения:

 fun Array<BooleanArray>.copy() = arrayOfNulls<ByteArray>(size).let { copy -> forEachIndexed { i, bytes -> copy[i] = bytes.clone() } copy } as Array<BooleanArray> 

или даже более кратким, как было предложено @hotkey :

 fun Array<BooleanArray>.copy() = Array(size) { get(it).clone() }