我正在尝试使用Playground中的以下代码将二维数组转换为一维数组后添加:
let twoDimensionalArray = [[1, 3, 5], [2, 4, 6], [12, 15, 16]]
let oneDimensionalArray = twoDimensionalArray.flatMap { $0.map { $0 += 2 } }
print(oneDimensionalArray)
但是我收到错误:
变异运算符的左侧不可变:'$ 0'是不可变的
另外我看到在Apple Documentation中不推荐使用flatmap方法,那么我应该做些什么呢?
你几乎是对的。所有你需要的是删除=
:
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
)。