代码之家  ›  专栏  ›  技术社区  ›  Laurence Wingo

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

  •  0
  • Laurence Wingo  · 技术社区  · 8 年前

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

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

    但是我收到错误:

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

    Apple Documentation 那我该怎么做呢?

    1 回复  |  直到 8 年前
        1
  •  1
  •   pacification    8 年前

    你几乎是对的。你所需要的就是移除 = :

    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

    推荐文章