Проблема здесь:
var arr = data
arr
теперь является просто второй ссылкой на элементы в data
, поэтому любые модификации arr
(например, arr(i)(1) = 0
) такжеизменения data
.
Если вы хотите изменить arr
без изменения data
, вам нужно будет сделать глубокую копию.Примерно так:
var arr = data.map(_.map(identity))
Это всего лишь одна из многих, многих причин, по которым изменяемые переменные (var
с) и изменяемые структуры данных (Array
с)плохо, плохо , плохо .Хороший код Scala никогда (ну почти никогда) их не использует.