Kotlin 按值传递。大堆
我有两个数组。但是当我改变的时候,第二个第一个也改变了。 我试过了 .clone() .copyOf() 但这对我不起作用Kotlin 按值传递。大堆,kotlin,Kotlin,我有两个数组。但是当我改变的时候,第二个第一个也改变了。 我试过了 .clone() .copyOf() 但这对我不起作用 object MatrixObject { var table: Array<Array<Int>>? = null fun randOf(n: Int) { table= Array(n, { Array(n, { Random().nextInt(100 - 0) + 0 }) }) } var tableF: Array&l
object MatrixObject {
var table: Array<Array<Int>>? = null
fun randOf(n: Int) {
table= Array(n, { Array(n, { Random().nextInt(100 - 0) + 0 }) })
}
var tableF: Array<Array<Int>>? = null
get() {
if (field==null)
factorization()
return field
}
fun factorization() {
tableF = table!!
... //here I change elements of tableF
}
}
及
但是它仍然不起作用。我找到了解决方案。我初始化了数组
tableF= Array(table!!.size, { Array(table!!.size, {0}) })
for(row in 0 until table!!.size)
tableF!![row] = table!![row].clone()
你能构造一个?可能的副本吗
for(row in 0 until table!!.size)
tableF!![row] = table!![row].clone() // and copyOf()
tableF= Array(table!!.size, { Array(table!!.size, {0}) })
for(row in 0 until table!!.size)
tableF!![row] = table!![row].clone()