Swift 101 - triedy, premenné, vlastnosti a metódy

Ako som sľúbil, tu je moja prvá splátka na učenie sa programovať v novom jazyku Swift!

Definovanie tried v Swift

Nasledujúci kód zobrazuje príklad definície triedy Swift:

Ak chcete deklarovať triedu v Swift, použijete kľúčové slovo class nasledované názvom triedy. Ak má nadtriedu, pridáte dvojbodku a názov nadtriedy. Začiatok a koniec triedy sú označené otváracími a zatváracími zloženými zátvorkami.

V systéme Swift sú triedy definované v jednom súbore zdrojového kódu .swift v porovnaní s objektívom C, kde sú triedy definované v dvoch samostatných súboroch, súbor záhlavia (.h) a súbor implementácie (.m).

Deklarovanie premenných

Nasledujúci kód zobrazuje príklad deklarácie premennej:

Začíname deklaráciu premennej s kľúčovým slovom var nasledovaným názvom premennej. Potom pridáte dvojbodku, za ktorou nasleduje typ premennej. Potom môžete premennej priradiť hodnotu pomocou operátora priradenia (=).

Ak v premennej Swift priradíte počiatočnú hodnotu premennej, nemusíte zadávať typ premennej podľa nasledujúceho kódu:

Môžete to urobiť, pretože Swift má niečo, čo sa nazýva typ dedukcie, kde môže zistiť, alebo odvodiť typ premennej na základe hodnoty, ktorú mu priradíte.

V Objective-C môžete deklarovať premenné inštancie na úrovni triedy a lokálne premenné v rámci metód. V systéme Swift neexistujú žiadne premenné na úrovni triedy - iba lokálne premenné, ktoré deklarujete v rámci metód. Vlastnosti však môžete deklarovať na úrovni triedy (pozrite si časť Deklarácia vlastností nižšie.)

Koniec hviezdičky

V Objective-C použijete hviezdičku na označenie, že premenná drží ukazovateľ na objekt. V Swift môže konštanta alebo premenná obsahovať ukazovateľ na adresu v pamäti (aj keď nie priamy ukazovateľ), ale v tomto kontexte nemusíte nikdy používať hviezdičku.

Deklarovanie jednoduchých vlastností

Nasledujúci kód zobrazuje príklad deklarácie vlastností:

Ako vidíte, je to veľmi podobné deklarovaniu premennej, okrem toho, že deklarujete vlastnosť na úrovni triedy a nie v rámci metódy.

Ako pri premenných, ak priradíte počiatočnú hodnotu vlastnosti, nemusíte zadávať typ vlastnosti. Môžete tiež inicializovať vlastnosti v rámci metód inicializátora (podrobnosti nájdete v časti Inicializátory nižšie.) Nasledujúci kód zobrazuje príklad deklarovania vlastnosti bez zadania typu:

V Objective-C mali vlastnosti typicky záložné premenné inštancie, v ktorých bola uložená skutočná hodnota vlastnosti. Swift zjednodušuje vlastnosti zjednotením konceptov vlastností a premenných inštancií. Vlastnosti už nemajú premennú inštancie zálohovania. Všetko o nehnuteľnosti je deklarované na jednom mieste.

V systéme Swift nemusíte použiť vlastné kľúčové slovo na označenie vlastnosti, pokiaľ metóda, do ktorej píšete kód, nemá parameter s rovnakým názvom ako vlastnosť.

Deklarovanie vypočítaných vlastností

Swift má tiež vypočítané vlastnosti, ktoré majú priradené metódy get a set, ako je znázornené v nasledujúcom kóde:

V tomto príklade má trieda Teplomer jednoduchú vlastnosť teplotyFahrenheita a vypočítanú vlastnosť teploty .

Všimnite si, že metódy get a set triedy Teplomer neodkazujú na premennú inštancie, pretože v Swift neexistuje žiadna taká vec ako premenná inštancie!

V tomto prípade metóda get načíta hodnotu z vlastnosti temperatureFahrenheit, prevedie ju na Celsius a vráti hodnotu. Nastavená metóda preberá hodnotu, ktorá mu bola odovzdaná, prevedie ju na Fahrenheit a potom uloží výsledok do vlastnosti temperatureFahrenheit .

Hodnota odovzdaná metóde sady vlastností je uložená v implicitne pomenovanom parametri nazvanom newValue . Ak chcete použiť iný názov parametra, môžete zadať názov v zátvorkách za súborom podľa nasledujúceho kódu:

Zadanie názvu parametra môže uľahčiť pochopenie kódu. V tomto príklade je nastavenie názvu parametra na celsiusValue jasnejšie, že nastavená metóda prevádza hodnotu z Celsia na Fahrenheit.

Vyhlasovacie metódy

Nasledujúci kód obsahuje príklad deklarácie metódy Swift:

Ako v prípade Objective-C, aj v Swifte deklarujete metódu inštancie medzi otváracími a zatváracími zloženými zátvorkami triedy, do ktorej patrí.

Na deklarovanie metódy najprv zadáte kľúčové slovo func, za ktorým nasleduje názov metódy. Ak má metóda parametre, zahrniete ich do zátvoriek. Pre každý parameter zadávate názov parametra, za ktorým nasleduje dvojbodka, za ktorým nasleduje typ. Ak má metóda návratovú hodnotu, pridajte pomlčku a väčšie ako znamienko ( -> ), za ktorým nasleduje typ návratovej hodnoty.

Nasledujúci kód obsahuje príklad metódy, ktorá neprijíma žiadne parametre a nevracia nič:

Ako vidíte, zátvorky sa vyžadujú za názvom metódy, aj keď nie sú k dispozícii žiadne parametre. Metóda, ktorá nevracia nič, nepotrebuje po zátvorkách indikátor návratovej hodnoty ( -> ).

Inicializačné metódy

Nasledujúci kód obsahuje príklad metódy inicializátora, ktorý sa používa na inicializáciu triedy.

Inicializačné metódy sú vždy pomenované init a na rozdiel od Objective-C nikdy nevracajú hodnotu. Vo vyššie uvedenom príklade metóda init akceptuje parameter currentTemperature, v ktorom môžete prejsť počiatočnú teplotu. Táto hodnota sa potom uloží do vlastnosti temperatureFahrenheit .

Môžete vytvoriť viacero metód initalizátora, ako je znázornené v nasledujúcej ukážke kódu:

V tomto príklade sú obidve metódy pomenované init, aby boli názvy jedinečné, externé meno je priradené k parametrom - fromFahrenheit a fromCelsius . To robí úplný názov metódy init (fromFahrenheit :) a init (fromCelsius :) .

Stojí za zmienku, že metódy Swift nie sú zdedené. Z praktického hľadiska to znamená, že v metóde init by ste nemali umiestniť žiadny kód, ktorý chcete prepísať v podtriede. Ak máte kód, ktorý chcete vykonať počas iniciačnej fázy triedy a chcete mať možnosť prepísať tento kód v podtriede, môžete vytvoriť samostatnú metódu, umiestniť inicializačný kód do tejto metódy a potom zavolať túto metódu z adresy. init .

Vytvorenie inštancie triedy

Tu je príklad, ako vytvoriť inštanciu triedy:

Ako môžete vidieť, na vytvorenie inštancie triedy deklarujete premennú, ktorá má obsahovať odkaz na triedu, zadajte znak rovnosti (operátor priradenia) a potom názov triedy, za ktorým nasledujú zátvorky.

záver

To sú niektoré zo základných informácií, ktoré potrebujete vedieť, aby ste mohli začať s programovaním Swift. V nadchádzajúcich príspevkoch sa ponorím hlbšie do jazyka, aby som vám pomohol stať sa znalcom novej syntaxe a štruktúry Swift.