Попытка добавить с помощью Flatmap и Map в Swift - PullRequest
0 голосов
/ 05 сентября 2018

Я пытаюсь добавить после преобразования двумерного массива в одномерный массив, используя следующий код на игровой площадке:

let twoDimensionalArray = [[1, 3, 5], [2, 4, 6], [12, 15, 16]]
let oneDimensionalArray = twoDimensionalArray.flatMap { $0.map { $0 += 2 } }
print(oneDimensionalArray)

Однако я получаю сообщение об ошибке:

левая часть оператора мутации не изменяема: '$ 0' неизменна

Также я вижу, что метод flatmap устарел в Документации Apple , так что мне делать по-другому?

1 Ответ

0 голосов
/ 05 сентября 2018

Ты почти прав. Все, что вам нужно, это удалить =:

let twoDimensionalArray = [[1, 3, 5], [2, 4, 6], [12, 15, 16]]
let oneDimensionalArray = twoDimensionalArray.flatMap { $0.map { $0 + 2 } }
print(oneDimensionalArray) // [3, 5, 7, 4, 6, 8, 14, 17, 18]

Вы можете применить изменения к значению ($0) при закрытии, манипулируя им и чем-то другим, а не путем непосредственного изменения (т.е. $0 += 2).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...