prefix & drop: alcune novità di Swift 3.1

Da qualche giorno Apple ha rilasciato l’aggiornamento 3.1 di Swift. In attesa del ben più importante aggiornamento 4.0 del quale avremo una preview il 5 Giugno al WWDC 2017, vediamo oggi 2 funzioni aggiunte al protocollo Sequence.

prefix(while:)

Data una sequenza di valori, possiamo estrarre tutti i valori finché una certa condizione è soddisfatta.

Esempio

Vogliamo estrarre la sottosequenza iniziale che contiene numeri maggiori di zero, ovvero [1, 2, 1, 4, 8]

Per farlo possiamo scrivere

Come vedete abbiamo passato una closure al prefix, finché il risultato di quella closure ritornerà true il prefix continuerà ad aggiungere nuovi elementi al risultato.

drop(while:)

Questa funzione si comporta in modo speculare, ovvero scarta tutti gli elementi della sequenza fino a quando viene trovato un elemento che soddisfa una cera condizione.

Vogliamo scartare tutti i valori precedenti al primo 0.

Possiamo scrivere

Risultato

 

Luca Angeletti

Trainer • Developer • Writer

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *