Skip to main content

Aggiungere Funzionalità agli Array di un Tipo Specifico in Swift

Swift ci permette di aggiungere funzionalità a una un certo tipo classe o struct generica tramite la tecnica delle extension.

Inoltre ci consente di indicare che quella funzionalità sarà disponibile solo quando il tipo generico della classe/struct sarà quello che decidiamo noi.

Vediamo un esempio per capire meglio questo concetto.

La struct Array è generica, questo significa che possiamo avere array di Int ([Int]), oppure array di String ([String]) e così via…

Aggiungere funzionalità agli Array di Interi

Ora vogliamo aggiungere una computed property sum agli Array di Int. Si tratta di una property che ritorna la somma di tutti gli interi contenuti nell’array.

Alla riga #1 stiamo usando al clausola where Element == Int per indicare che questa extension si applica solo agli Array di Int.

Questa condizione ha 2 effetti:

  1. renderà disponibile le funzionalità che andremo a scrivere solo agli Array di Int
  2. il compilatore ci lascerà scrivere la nostra funzionalità supportando l’assunzione che ogni elementi dell’array è un Int

Alla riga #2 stiamo definendo la  nostra computed property sum di tipo Int.

Infine alla riga #3 usiamo il metodo reduce per combinare insieme tutti gli elementi dell’array usando la somma.

Test

Possiamo ora scrivere

Aggiungere funzionalità agli Array di Stringhe

Vediamo ora un esempio simile. Vogliamo aggiungere agli Array di tipo String una computed property che restituisce tutti i caratteri usati nelle stringhe contenute nell’array. Senza duplicati e considerando le maiuscole e minuscole come lo stesso carattere.

Test

Ancora una volta possiamo scrivere

Conclusione

Come sempre  potete usare i commenti qui sotto in caso di dubbi o domande.

Trainer • Developer • Writer

Luca Angeletti

Trainer • Developer • Writer

Lascia un commento

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