V poslední díle našeho seriálu o programování jsme si zkusili naprogramovat menší aplikaci, která řešila práci s polem a cykly. Jak jsem však v závěru zmínil, dnes se podíváme opět na něco nového. Hlavu si dnes budeme opět lámat se dříve probíranými Optionals, které jsou ve Swiftu skutečně důležité a rozhodně jsme si o nich neřekli vše. Pojďme tedy na to.
Implicitní rozbalení
Implicitní rozbalení, v originále Implicity Unwrapped Optional, slouží pro hodnoty, u kterých jsme si již od jejich inicializace jistí, že budou po celý běh programu obsahovat nějakou hodnotu. V takovémto případě by bylo nelogické jim nastavit klasický datový typ Optional, jelikož bychom při každé operaci s proměnnou či konstantou ji museli takzvaně rozbalovat (což jsme si vysvětlili v minulé lekci věnované typu Optional). Pro takovýto zápis slouží namísto otazníku vykřičník a celý proces je velmi podobný.
Ve výše přiložené galerii si můžete povšimnout, že se takováto proměnná/konstanta deklaruje pomocí výše zmiňovaného vykřičníku. Problémem však v takovémto případě je, že se v proměnné nesmí nacházet hodnota Nil, která by způsobila pád programu.
Nil coalescing
Napadlo vás někdy, že byste rádi v případě hodnoty nil nechali vypsat nějakou výchozí hodnotu? Doposud jsme totiž při každém rozbalení museli ručně všechno určit, co se má v případě takovéto hodnoty dít. Jak však po celou dobu seriálu zmiňuji, Swift je jazyk moderní a častokrát řeší problémy za nás. Přesně pro takovéto účelu se v jazyku nachází takzvaný Nil coalescing, díky kterému můžeme značně zkrátit kód. Pojďme se na něj podívat v níže přiložené galerii.
Při využití Nil coalescingu v našem případě konstantě sdělujeme, ať se rovná buďto rozbalené hodnotě definované konstanty, nebo v případě hodnoty nil ať do sebe vezme hodnotu nula. Tímto krokem můžeme značně zkrátit náš kód, avšak hlavně můžeme předejít hned několika chybám.
Tímto bychom náš seriál o programování ve Swiftu mohli zakončit, jelikož jsme získali veškeré potřebné základní znalosti. V současné době byste měli být schopni naprogramovat vcelku slušné konzolové aplikace, a to díky kombinaci všech doposud nabytých znalostí. Děkuji za pozornost.
Záhadně napsaný konec, doufám že to není konec …. :-(
Programuje vobec niekto v tejto neprehladnej a nelogickej zlatanine, vytvorenej len za ucelom marketingu, nazyvajucej sa Swift? Ved s Objective-C sa to neda ani len zdaleka porovnat.
Pre mna syntax objc je strasny. Swift mi pride blizsi kedze som presedlaval z JAVA , C#… osobne som za swift rad.
Programuje :). Na rozdil od objC se to da cist a optionals jsou opravdu silny koncept. Pise se v tom dobre a rychle. Swift ma navic silnou podporu pro funkcionalni programovani a taky se v tom daji psat serverove aplikace. Tady jeste musi vyzrat framworky, ale je to cele na skvele ceste. Jinak napr. google pouziva swift pro machine learning technologie. Ma to obcas svoje mouchy, ale to kazdej jazyk :).
V životě jsem neslyšel programátora hodnotit jazyk takhle „odborným“ způsobem. Dovolím si odhadnout, že nick Objective-C je jen AppleHater.
Jedině ve swiftu a spokojenost. K objc už bych se nevrátil.
Hmm hadam ze tohle uz nebude pokracovat