В начале вашего цикла у вас есть объект IntArray
и переменная, которая на него ссылается:
A ──→ IntArray
Затем вы создаете вторую переменную, которая ссылается на тот же IntArray
объект.
A
>─→ IntArray
B
Надеюсь, это иллюстрирует, почему изменения, сделанные с помощью ссылки B
, также будут видны через ссылку A
.
Если вы хотите, чтобы B
ссылался на другой IntArray
, вам придется сделать его копию, например ::
val B = A.copyOf()
или
val B = A.clone()
или
val B = IntArray(a.size){ A[it] }
или различными другими способами. (copyOf()
обычно лучший.)
(Наконец, обратите внимание, что соглашение Kotlin для переменных, методов и свойств должно начинаться с буквы нижнего регистра, и только классы и параметры типа должны начинаться с заглавной буквы.)