Select () from LINQ in swift 3.0?

Is there any alternative to the LINQ Select () method in Swift?

As an example, in C # I can do the following:

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

but how can I do the same using the Swift language?

+2
source share
1 answer

map(_:)

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

which is syntactic sugar for:

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

Used syntactic sugar includes:

  • Shadow Close Syntax

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

    let ranks = cards.map { card -> Rank in
        return card.rank
    }
    
  • Output type return

    let ranks = cards.map { card in
        return card.rank
    }
    
  • Implicit Return Value

    let ranks = cards.map { card in
       card.rank
    }
    
  • Anonymous closing arguments

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

Check out the language instruction at close (Swift name for C # calling lambda) for more information,

+5
source

Source: https://habr.com/ru/post/1674610/


All Articles