尝试在Swift中使用Flatmap和Map添加

尝试在Swift中使用Flatmap和Map添加,swift,higher-order-functions,flatmap,Swift,Higher Order Functions,Flatmap,在一个操场中使用以下代码将二维数组转换为一维数组后,我尝试添加: let twoDimensionalArray = [[1, 3, 5], [2, 4, 6], [12, 15, 16]] let oneDimensionalArray = twoDimensionalArray.flatMap { $0.map { $0 += 2 } } print(oneDimensionalArray) 但是,我收到了错误: 变异运算符的左侧是不可变的:“$0”是不可变的 此外,我还发现flatmap

在一个操场中使用以下代码将二维数组转换为一维数组后,我尝试添加:

let twoDimensionalArray = [[1, 3, 5], [2, 4, 6], [12, 15, 16]]
let oneDimensionalArray = twoDimensionalArray.flatMap { $0.map { $0 += 2 } }
print(oneDimensionalArray)
但是,我收到了错误:

变异运算符的左侧是不可变的:“$0”是不可变的


此外,我还发现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
)来将更改应用于闭包中的值(
$0
)。

我喜欢您所说的“您可以通过操纵闭包中的值($0)和其他内容,而不是直接更改(即,$0+=2)”的方式因为它清楚地表明了我做错了什么。