我尝试在将二维数组转换为一维数组后,在一个操场中使用以下代码添加:
let twoDimensionalArray = [[1, 3, 5], [2, 4, 6], [12, 15, 16]] let oneDimensionalArray = twoDimensionalArray.flatMap { $0.map { $0 += 2 } } print(oneDimensionalArray)
但是我收到错误:
变异运算符的左侧是不可变的:“$0”是不可变的
Apple Documentation 那我该怎么做呢?
你几乎是对的。你所需要的就是移除 = :
=
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 += 2