Swift 101 - klases, mainīgie, rekvizīti un metodes

Kā solīts, šeit ir mana pirmā iemaksa par mācīšanos programmā jaunajā Swift valodā!

Klases definēšana Swift

Šis kods parāda Swift klases definīcijas piemēru:

Lai atzītu klasi Swift, izmantojat klases atslēgvārdu, kam seko klases nosaukums. Ja tai ir augstākā klases, jūs pievienojat kolu un augstākās klases nosaukumu. Klases sākumu un beigas norāda atvēršanas un aizvēršanās lencēm.

Swift klasēs tiek definētas vienas .swift pirmkodu datnes, salīdzinot ar Objective-C, kur klases tiek definētas divos atsevišķos failos, galvenes (.h) failā un īstenošanas (.m) failā.

Mainīgo lielumu paziņošana

Nākamais kods parāda mainīgā deklarācijas piemēru:

Jūs sākat mainīgo deklarāciju ar var atslēgvārdu, kam seko mainīgā nosaukuma nosaukums. Tālāk jūs pievienojat kolu, kam seko mainīgā tipa. Pēc tam mainīgajam var piešķirt vērtību, izmantojot (=) piešķiršanas operatoru.

Swift gadījumā, ja mainīgajam piešķirat sākotnējo vērtību, jums nav nepieciešams norādīt mainīgo tipu, kā parādīts šādā kodā:

To var izdarīt, jo Swift ir kaut kas, ko sauc par tipa secinājumu, kur tas var izrēķināties, vai secināt mainīgā veida veidu, pamatojoties uz vērtību, kuru tam piešķirat.

Objektīvā-C jūs varat deklarēt gadījumu mainīgos klases līmenī un vietējos mainīgos paņēmieniem. Swift programmā nav klases līmeņa mainīgo - tikai vietējie mainīgie, kurus deklarējat metodēs. Tomēr jūs varat deklarēt īpašības klases līmenī (skatiet sadaļu Rekvizītu deklarēšana ).

Zvaigznes beigas

Objektīvā C izmantojat zvaigznīti, lai norādītu, ka mainīgais satur rādītāju uz objektu. In Swift, konstante vai mainīgie var saturēt rādītāju uz adresi atmiņā (lai gan tas nav tiešs rādītājs), bet šajā kontekstā jums nekad nav nepieciešams izmantot zvaigznīti.

Vienkāršo īpašību paziņošana

Šis kods parāda īpašuma deklarācijas piemēru:

Kā redzat, tas ir ļoti līdzīgs mainīgā paziņošanai, izņemot to, ka jūs deklarējat īpašumu klases līmenī, nevis metodes ietvaros.

Tāpat kā ar mainīgajiem lielumiem, ja piešķirat sākotnējo vērtību īpašumam, jums nav jānorāda īpašuma tips. Varat arī inicializēt rekvizītus no inicializācijas metodēm (sīkāku informāciju skatiet sadaļā Par iniciatoriem ). Šis kods parāda īpašuma deklarēšanas piemēru, nenorādot tipu:

Objektīvā C īpašībām parasti bija piemēri, piemēram, mainīgie lielumi, kuros tika saglabāta īpašuma faktiskā vērtība. Swift vienkāršo īpašības, apvienojot īpašību un gadījumu mainīgo jēdzienus. Rekvizītiem vairs nav atbalsta piemēru mainīgā. Viss par īpašumu tiek deklarēts vienā vietā.

Swift sistēmā jums nav jālieto atslēgvārds, lai atsauktos uz īpašumu, ja vien metodei, kurā rakstāt kodu, ir parametrs ar tādu pašu nosaukumu kā īpašumam.

Aprēķināto rekvizītu deklarēšana

Swift ir arī aprēķinātas īpašības, kas saistītas ar saņemšanas un iestatīšanas metodēm, kā parādīts šādā kodā:

Šajā piemērā termometra klasei ir vienkārša tempera- tūraFahrenheit īpašība un aprēķinātais temperateCelsius īpašums.

Ievērojiet, ka termometra klases iegūšanas un iestatīšanas metodes neattiecas uz gadījuma mainīgo, jo Swift!

Šādā gadījumā saņemšanas metode iegūst vērtību no temperatūrasFahrenheit rekvizīta, pārveido to uz Celsiju un atgriež vērtību. Iestatītā metode ņem tai nodoto vērtību, pārvērš to Fārenheitā un pēc tam saglabā rezultātu temperatūrāFahrenheit īpašumā.

Vērtība, kas nodota īpašuma iestatītajai metodei, tiek saglabāta netieši nosauktajā parametrā, ko sauc par NewValue . Ja vēlaties izmantot citu parametru nosaukumu, pēc komplekta, kā norādīts nākamajā kodā, varat norādīt nosaukumu iekavās:

Parametra nosaukuma norādīšana var padarīt jūsu kodu vieglāk saprotamu. Šajā piemērā parametra nosaukuma iestatīšana uz celsiusValue padara skaidrāku, ka iestatītā metode pārveido vērtību no Celsija uz Fārenheitu.

Metodes deklarēšana

Šis kods satur Swift metodes deklarācijas piemēru:

Tāpat kā ar Objective-C, arī Swift jūs deklarējat gadījuma metodi starp tās klases atvēršanas un aizvēršanās lencēm, uz kuru tā pieder.

Lai paziņotu metodi, vispirms norādiet funkciju atslēgvārdu, kam seko metodes nosaukums. Ja metodei ir parametri, tos iekļauj iekavās. Katram parametram norādiet parametra nosaukumu, kam seko resnās zarnas, pēc tam tā tipu. Ja metodei ir atgriešanās vērtība, tad pievienojiet defisi un lielāku nekā zīmi ( -> ), kam seko atgriešanās vērtības veids.

Nākamajā kodā ir piemērs metodei, kas neparedz nekādus parametrus un neatgriež neko:

Kā redzat, pēc metodes nosaukuma ir nepieciešamas iekavās, pat ja nav parametru. Metode, kas atgriež neko, pēc iekavām nav nepieciešama atgriešanās vērtības indikators ( -> ).

Inicializēt metodes

Nākamajā kodā ir piemērs inicializēšanas metodei, kas tiek izmantota klases inicializēšanai.

Inicializēšanas metodes vienmēr tiek nosauktas par init, un atšķirībā no Objective-C nekad neatgriezties no vērtības. Iepriekšējā piemērā init metode pieņem pašreizējo temperatūras parametru, kurā jūs varat iziet sākotnējo temperatūru. Šī vērtība tiek saglabāta temperatūrāFahrenheit īpašumā.

Jūs varat izveidot vairākas initalizer metodes, kā parādīts šādā koda paraugā:

Šajā piemērā abas metodes tiek nosauktas par init, tāpēc, lai nosaukumus padarītu unikālus, parametriem tiek piešķirts ārējs nosaukums - noFrenrenheita un Celiša . Tas padara pilnu metodes nosaukumu init (noFahrenheit :) un init (noCelsius :) .

Ir vērts atzīmēt, ka Swift programmā init metodes nav mantojamas. No praktiskā viedokļa tas nozīmē, ka jums nevajadzētu ievietot nevienu kodu init metodē, kuru vēlaties, lai varētu ignorēt apakšklasē. Ja jums ir kods, kuru vēlaties izpildīt klases sākumposmā, un vēlaties, lai varētu ignorēt šo kodu apakšklasē, varat izveidot atsevišķu metodi, ievietot inicializācijas kodu šajā metodē un pēc tam izsaukt šo metodi no init .

Klases instances izveide

Šeit ir piemērs, kā izveidot klases klasi:

Kā redzat, lai izveidotu klases instanci, jūs deklarējat mainīgo, lai saglabātu atsauci uz klasi, ierakstiet vienādu zīmi (piešķiršanas operators) un pēc tam klases nosaukumu, kam seko iekavās.

Secinājums

Šie ir daži no pamatiem, kas jums jāzina, lai sāktu darbu ar Swift programmēšanu. Nākamajos amatos es ienirtos dziļāk valodā, lai palīdzētu jums apgūt Swift jauno sintaksi un struktūru.