„Swift 101“ - klasės, kintamieji, savybės ir metodai

Kaip buvo žadėta, čia yra mano pirmoji įmoka mokymosi programuoti naujoje „Swift“ kalboje!

Klasių apibrėžimas „Swift“

Šis kodas rodo Swift klasės apibrėžimą:

Jei norite paskelbti klasę „Swift“, naudokite klasės raktinį žodį, po kurio seka klasės pavadinimas. Jei jis turi superklasę, pridedate dvitaškį ir superklasės pavadinimą. Klasės pradžią ir pabaigą nurodo atidarymo ir uždarymo garbanos.

„Swift“ klasės klasifikuojamos viename „ swift“ kodo faile, lyginant su „Objective-C“, kur klasės yra apibrėžtos dviejuose atskiruose failuose, antraštės (.h) faile ir įgyvendinimo (.m) faile.

Kintamųjų deklaravimas

Šis kodas rodo kintamosios deklaracijos pavyzdį:

Pradedate kintamą deklaraciją su var raktiniu žodžiu, po kurio nurodomas kintamojo pavadinimas. Tada pridėkite dvitaškį, po kurio seka kintamasis tipas. Vėliau galite priskirti reikšmę kintamajam naudodami (=) priskyrimo operatorių.

„Swift“, jei priskiriate kintamojo pradinę vertę, nereikia nurodyti kintamojo tipo, kaip parodyta šiame kode:

Tai galite padaryti, nes „Swift“ turi kažką, vadinamą „ tipo išvada“, kur ji gali išsiaiškinti, arba daryti išvadą dėl kintamojo tipo pagal jam priskirtą vertę.

„Objective-C“ metoduose galite deklaruoti egzemplioriaus kintamuosius klasės lygmeniu ir vietiniuose kintamuosiuose. „Swift“ nėra klasės lygio kintamųjų - tik vietiniai kintamieji, kuriuos deklaruojate metodais. Tačiau galite deklaruoti savybes klasės lygmeniu (žr. Toliau pateiktą skyrių „ Skelbimo savybės“ ).

Žvaigždės pabaiga

„Objective-C“ naudojate žvaigždutę, nurodydami, kad kintamasis turi rodyklę į objektą. „Swift“ sistemoje pastovus arba kintamasis gali turėti žymiklį į atmintyje esantį adresą (nors jis nėra tiesioginis rodiklis), tačiau šiame kontekste niekada nereikia naudoti žvaigždutės.

Paprastų savybių deklaravimas

Šis kodas rodo turto deklaracijos pavyzdį:

Kaip matote, tai labai panaši į kintamojo paskelbimą, išskyrus tai, kad deklaruojate turtą klasės lygmeniu, o ne metodu.

Kaip ir kintamųjų atveju, jei priskiriate pradinę vertę turtui, nereikia nurodyti turto tipo. Taip pat galite inicijuoti savybes iš iniciatorių metodų (išsamesnę informaciją žr. Toliau pateiktame skyriuje „ Inicializatoriai “.) Šis kodas rodo turto deklaravimo pavyzdį nenurodant tipo:

Objektyvo C ypatybėse paprastai buvo pagrindiniai egzemplioriniai kintamieji, kuriuose buvo išsaugota faktinė turto vertė. „Swift“ supaprastina savybes vienodinant savybių ir pavyzdžių kintamųjų sąvokas. Ypatybėse nebėra pagrindinio egzemplioriaus kintamojo. Viskas apie turtą yra deklaruojama vienoje vietoje.

„Swift“ neturite naudoti savarankiško raktinio žodžio, jei norite nurodyti turtą, nebent metodas, kuriuo rašote kodą, turi tą patį pavadinimą kaip ir turtas.

Kompiuterinių savybių deklaravimas

„Swift“ taip pat turi apskaičiuotas ypatybes, susijusias su gauti ir nustatyti metodus, kaip parodyta šiame kode:

Šiame pavyzdyje termometro klasė turi paprastą temperatūrąFahrenheit nuosavybę ir apskaičiuotą temperateCelsius savybę.

Atkreipkite dėmesį, kad termometro klasės gavimo ir nustatymo metodai nenurodo egzemplioriaus kintamojo, nes nėra tokio dalyko kaip egzempliorinis kintamasis „Swift“!

Tokiu atveju gavimo metodas nuskaito reikšmę iš temperatūrosFahrenheit ypatybės, konvertuoja jį į Celsijaus ir grąžina vertę. Nustatytas metodas užima jai perduotą vertę, konvertuoja jį į Fahrenheit ir išsaugo rezultatą temperatūrosFahrenheit nuosavybėje.

Turto nustatytam metodui perduota vertė yra saugoma netiesiogiai pavadintame parametre, vadinamu „ NewValue“ . Jei norite naudoti kitą parametrų pavadinimą, pavadinimą galite nurodyti skliausteliuose po rinkinio, kaip parodyta šiame kode:

Nurodant parametro pavadinimą, jūsų kodas bus lengviau suprantamas. Šiame pavyzdyje, nustatant parametro pavadinimą į celsiusValue, paaiškėja, kad nustatytas metodas konvertuoja reikšmę nuo Celsijaus iki Fahrenheito.

Metodų deklaravimas

Šiame kode yra Swift metodo deklaracijos pavyzdys:

Kaip ir „Objective-C“, „Swift“ skelbiate, kad egzemplioriaus metodas yra tarp klasės, kuriai jis priklauso, atidarymo ir uždarymo garbanotųjų petnešų.

Jei norite deklaruoti metodą, pirmiausia nurodote funkc. Raktinį žodį, po kurio nurodomas metodo pavadinimas. Jei metodas turi parametrų, juos įtraukiate į skliaustelius. Kiekvienam parametrams nurodote parametro pavadinimą, po kurio - dvitaškis, po kurio seka jo tipas. Jei metodas turi grąžinimo vertę, tada pridėkite brūkšnelį ir didesnę nei ženklas ( -> ), po kurio nurodomas grąžinimo vertės tipas.

Toliau pateiktame kode pateikiamas metodo, kuris nepriima jokių parametrų, pavyzdys ir negrąžina nieko:

Kaip matote, po metodo pavadinimo yra reikalingi skliausteliai, net jei nėra parametrų. Metodas, kuris grąžina nieko, nereikia grąžinimo vertės indikatoriaus ( -> ) po skliaustelių.

Inicijuoti metodus

Toliau pateiktame kode pateikiamas iniciatoriaus metodo pavyzdys, naudojamas klasių inicijavimui.

Iniciatyviniai metodai visada yra pavadinti init ir, skirtingai nei Objective-C, niekada negrąžina vertės. Pirmiau pateiktame pavyzdyje init metodas priima dabartinį temperatūros parametrą, kuriame galite pereiti nuo pradinės temperatūros. Tada ši reikšmė išsaugoma temperatūrosFahrenheit nuosavybėje.

Galite sukurti keletą initalizatoriaus metodų, kaip parodyta sekančiame kodo pavyzdyje:

Šiame pavyzdyje abu metodai yra pavadinti „ init“, todėl, kad pavadinimai taptų unikalūs, parametrams priskiriamas išorinis pavadinimas - nuoFrenrenheito ir „ Celsius“ . Tai reiškia, kad visas metodo pavadinimas yra init (išFahrenheit :) ir init (išCelsius :) .

Verta pažymėti, kad „Swift“ programoje „ init“ metodai nėra paveldimi. Praktiniu požiūriu tai reiškia, kad neturėtumėte įdėti jokio kodo į „ init“ metodą, kurį norite perkelti į poklasį. Jei turite kodą, kurį norite įvykdyti klasės pradinės fazės metu ir norite pakeisti šį kodą poklasyje, galite sukurti atskirą metodą, įterpti inicijavimo kodą į šį metodą ir paskambinti šiuo metodu iš init .

Klasės instancijos kūrimas

Štai pavyzdys, kaip sukurti klasės egzempliorių:

Kaip matote, norėdami sukurti klasės egzempliorių, skelbiate kintamąjį, turintį nuorodą į klasę, įrašykite lygiavertį ženklą (priskyrimo operatorių) ir po to klasės pavadinimą, po kurio yra skliausteliai.

Išvada

Tai yra keletas svarbiausių dalykų, kuriuos reikia žinoti, norėdami pradėti „Swift“ programavimą. Būsimuose pranešimuose girsiu giliau į kalbą, kad padėtų jums patirti naują „Swift“ sintaksę ir struktūrą.