尝试在 Swift 中使用 Flatmap 和 Map 添加
Attempting to Add Using Flatmap and Map in Swift
我在 Playground 中使用以下代码将二维数组转换为一维数组后尝试添加:
let twoDimensionalArray = [[1, 3, 5], [2, 4, 6], [12, 15, 16]]
let oneDimensionalArray = twoDimensionalArray.flatMap { [=11=].map { [=11=] += 2 } }
print(oneDimensionalArray)
但是我收到错误:
left side of mutating operator isn't mutable: '[=12=]' is immutable
我还看到平面图方法在 Apple Documentation 中已被弃用,所以我应该做些什么不同的事情?
你几乎是对的。您只需要删除 =
:
let twoDimensionalArray = [[1, 3, 5], [2, 4, 6], [12, 15, 16]]
let oneDimensionalArray = twoDimensionalArray.flatMap { [=10=].map { [=10=] + 2 } }
print(oneDimensionalArray) // [3, 5, 7, 4, 6, 8, 14, 17, 18]
您可以通过操作闭包和其他东西来对闭包中的值 ([=12=]
) 应用更改,而不是直接更改(即 [=13=] += 2
)。
我在 Playground 中使用以下代码将二维数组转换为一维数组后尝试添加:
let twoDimensionalArray = [[1, 3, 5], [2, 4, 6], [12, 15, 16]]
let oneDimensionalArray = twoDimensionalArray.flatMap { [=11=].map { [=11=] += 2 } }
print(oneDimensionalArray)
但是我收到错误:
left side of mutating operator isn't mutable: '[=12=]' is immutable
我还看到平面图方法在 Apple Documentation 中已被弃用,所以我应该做些什么不同的事情?
你几乎是对的。您只需要删除 =
:
let twoDimensionalArray = [[1, 3, 5], [2, 4, 6], [12, 15, 16]]
let oneDimensionalArray = twoDimensionalArray.flatMap { [=10=].map { [=10=] + 2 } }
print(oneDimensionalArray) // [3, 5, 7, 4, 6, 8, 14, 17, 18]
您可以通过操作闭包和其他东西来对闭包中的值 ([=12=]
) 应用更改,而不是直接更改(即 [=13=] += 2
)。