在Swift语言中是否存在LINQ Select()方法的替代方法?
例如,在c#中,我可以执行以下操作:
var ranks = cards.Select(a=> a.Rank).ToArray();
但是我怎么能用Swift语言做同样的事情呢?
map(_:)
let ranks = cards.map{ $0.Rank }
这是语法糖:
let ranks = cards.map({ (card: Card) -> Rank in return card.rank })
应用的语法糖包括:
尾随闭包语法
let ranks = cards.map { (card: Card) -> Rank in return card.rank
}
参数类型推断
let ranks = cards.map { card -> Rank in return card.rank
返回类型推断
let ranks = cards.map { card in return card.rank
隐式返回值
let ranks = cards.map { card in
card.rank }
匿名闭包参数
let ranks = cards.map { $0.rank }
请查看有关闭包的语言指南部分(C#称为 lambdas 的Swift名称)以获取更多信息,