一尘不染

在Swift 3.0中从LINQ中选择()吗?

swift

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

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

var ranks = cards.Select(a=> a.Rank).ToArray();

但是我怎么能用Swift语言做同样的事情呢?


阅读 225

收藏
2020-07-07

共1个答案

一尘不染

map(_:)

let ranks = cards.map{ $0.Rank }

这是语法糖:

let ranks = cards.map({ (card: Card) -> Rank in
    return card.rank
})

应用的语法糖包括:

  1. 尾随闭包语法

    let ranks = cards.map { (card: Card) -> Rank in
    return card.rank
    

    }

  2. 参数类型推断

    let ranks = cards.map { card -> Rank in
    return card.rank
    

    }

  3. 返回类型推断

    let ranks = cards.map { card in
    return card.rank
    

    }

  4. 隐式返回值

    let ranks = cards.map { card in
    

    card.rank
    }

  5. 匿名闭包参数

    let ranks = cards.map { $0.rank }
    

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

2020-07-07