在swift 3.0中从LINQ中选择()?

And*_*rew 2 linq swift

是否存在Swift语言中LINQ Select()方法的一些替代方法?

例如,在c#中我可以执行以下操作:

var ranks = cards.Select(a=> a.Rank).ToArray();
Run Code Online (Sandbox Code Playgroud)

但我如何使用Swift语言做同样的事情?

Ale*_*ica 5

map(_:)

let ranks = cards.map{ $0.Rank }
Run Code Online (Sandbox Code Playgroud)

这是语法糖:

let ranks = cards.map({ (card: Card) -> Rank in
    return card.rank
})
Run Code Online (Sandbox Code Playgroud)

应用的语法糖包括:

  1. 尾随闭包语法

    let ranks = cards.map { (card: Card) -> Rank in
        return card.rank
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 参数类型推断

    let ranks = cards.map { card -> Rank in
        return card.rank
    }
    
    Run Code Online (Sandbox Code Playgroud)
  3. 返回类型推断

    let ranks = cards.map { card in
        return card.rank
    }
    
    Run Code Online (Sandbox Code Playgroud)
  4. 隐含的回报价值

    let ranks = cards.map { card in
       card.rank
    }
    
    Run Code Online (Sandbox Code Playgroud)
  5. 匿名闭包参数

    let ranks = cards.map { $0.rank }
    
    Run Code Online (Sandbox Code Playgroud)

查看关于闭包语言指南部分(有关C#调用lambdas的Swift名称)以获取更多信息,