2014-09-04 36 views
16

è una specie piuttosto semplice per trovare un elemento di un array di tipo String, Int, eccCome cercare un array contenente elementi struct in Swift?

var States = ["CA", "FL", "MI"] 
var filteredStates = States.filter {$0 == "FL"} // returns false, true, false 

Ora, ho creato una struttura

struct Candy{ 
    let name:String 
} 

e poi inizializzato è

var candies = [Candy(name: "Chocolate"), 
Candy(name: "Lollipop"), 
Candy(name: "Caramel")] 

Qualcuno può suggerire il modo giusto per trovare "Cioccolato" nell'array contenente gli elementi struct? Non sono in grado di implementare il metodo di ricerca o filtro.

risposta

25

Con il codice seguente si ricevono tutte le strutture di caramelle nell'array, che corrispondono a "Chocolate".

var candiesFiltered = candies.filter{$0.name == "Chocolate"} 

Se si desidera solo un valore booleano se è stato trovato o non è possibile utilizzare il seguente codice:

var found = candies.filter{$0.name == "Chocolate"}.count > 0 
+0

Cool. Grazie ha lavorato per me! –

+2

La sintassi può essere semplificata come 'filter {$ 0.name == ...}' poiché la chiusura è 'finale'. – GoZoner

+0

Grazie a GoZoner, ho aggiornato la risposta. – Prine