V minulém díle našeho seriálu programování jsme si vysvětlili práci s datovým typem Optional. Jak jsem slíbil v závěru předchozího článku, dnes se vrhneme na pole, které nám opět usnadní naši práci při programování doslova všech aplikací.
Pole
Pole je kolekce prvků stejného datového typu, která slouží pro lepší ukládání hodnot. Představme si, že potřebujeme aplikaci, která uchovává jména všech studentů školy. Pokud bychom toho chtěli dosáhnout s dosavadními znalostmi, museli bychom pro každého studenta vytvořit proměnnou – což v případě školy není vhodné (přeci nebudeme psát tisíce proměnných). Pokud vytvoříme pole, ušetříme si čas, řádky kódu a hlavně se v samotných studentech dokážeme lépe orientovat. Samotné pole se však jazyk od jazyka liší. Ve starších jazycích například nemůžeme deklarovat dynamické pole (jehož velikost určuje například proměnná). Jak již však všichni víme, Swift je jazykem moderním, který nám dovoluje s polem pracovat daleko lépe. Například vůbec neřeší jejich velikost a ani indexaci, kterou mohou mnozí z vás znát z jiných programovacích jazyků.
Jak jsem již zmínil výše, jedná se o kolekci prvků. Pole si tedy můžeme představit například jako poličku s třemi šuplíky, přičemž každý z nich uchovává jednu hodnotu. Pokud bychom pro takovéto pole zvolili datový typ Int, tak v prvním šuplíku můžeme nalézt například číslo 1, v druhém číslo 4 a ve třetím číslo 7. Pojďme si to tedy ukázat na konkrétním, popsaném příkladu.
Jak si na snímcích můžeme všimnout, k naplnění pole jsme využili předchozím znalostí, tedy konkrétně cyklu. Přeci samozřejmě nebudeme psát každou hodnotu jednotlivě, když nám programování nabízí možnosti v takovéto podobě. Na samotné pole posléze můžeme volat hned několik metod, které nám mohou usnadnit práci s jeho daty. Můžeme jej například seřadit vzestupně či sestupně, hledat danou pozici prvku a spoustu dalšího. Pojďme si tedy podívat na generování náhodného čísla, kterým naplníme samotné pole, a následné seřazení pole.
Pokud bychom vynechali řádek kódu pole.reverse(), dostali bychom vzestupně seřazené pole. Nyní se pojďme podívat na hledání určitého prvku. Toho dosáhneme pomocí metody index(of:), která vrací pozici prvku v datovém typu Optional – buď prvek v poli existuje, nebo naopak nikoliv. Pro tuto metodu využijeme znalosti z předchozího dílu a bezpečně otevřeme box, zdali se v něm něco nachází. Podrobnější popis naleznete na níže přiloženém snímku.
Na naše pole můžeme nadále volat hned několik metod nebo vlastností. Pojďme se tedy v rychlosti podívat na těch pár nejdůležitějších pomocí jednoho obrázku.
Odstraňování prvků z pole
Odstranit jednotlivý prvek z pole můžeme pomocí metody remove(at:), která se řídí námi zadaným indexem. Pokud bychom tedy chtěli odstranit konkrétní prvek, budeme muset znát jeho konkrétní pozici. V případě, kdy si přejeme vymazat rovnou celé pole, pomůže nám metoda removeAll(). Pojďme se tedy podívat na poslední obrázek, na kterém nalezneme obě možné varianty.
To by prozatím pro pole bylo vše. V příštím díle našeho programování ve Swiftu si ukážeme práci s matematickými funkcemi, které nám mohou v mnoha případech usnadnit naši práci.
Články sleduji protože nejsem ve Swiftu o moc dál :-)
Screenshoty super, ale chtěl bych poprosit, zda by bylo možné na konec článku přikládat i kompletní zdrojáky jako .swift soubor.
Určitě by to přidalo popularitě článků, kdyby si to každý mohl rovnou stáhnout a začít si s tím hrát, než každý příklad od začátku napsat. Snížilo by to pro začátečníky „vstupní práh“ a nemuseli by případně řešit problémy kdy jim to nepůjde kvůli překlepu. :)
Mě osobně je to fuk, píšu všema deseti a autokompletace v Xcode je sice líná, ale funguje. :)