这种方法很好.但是,我认为它不起作用.
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
}
Run Code Online (Sandbox Code Playgroud)
有更多功能的方式吗?
mie*_*sol 10
你可以clone
这样使用:
fun Array<BooleanArray>.copy() = map { it.clone() }.toTypedArray()
Run Code Online (Sandbox Code Playgroud)
或者如果您想保存一些分配:
fun Array<BooleanArray>.copy() = arrayOfNulls<ByteArray>(size).let { copy ->
forEachIndexed { i, bytes -> copy[i] = bytes.clone() }
copy
} as Array<BooleanArray>
Run Code Online (Sandbox Code Playgroud)
或者@hotkey建议的更简洁:
fun Array<BooleanArray>.copy() = Array(size) { get(it).clone() }
Run Code Online (Sandbox Code Playgroud)