Swift 101 - Luokat, muuttujat, ominaisuudet ja menetelmät

Kuten luvattiin, tässä on ensimmäinen eräni opetuksesta ohjelmoida uudessa Swift-kielessä!

Luokkien määrittely Swiftissä

Seuraava koodi on esimerkki Swift-luokan määritelmästä:

Jos haluat julistaa luokan Swiftissä, käytät luokan avainsanaa, jota seuraa luokan nimi. Jos siinä on superluokka, lisäät kaksoispisteen ja superluokan nimen. Luokan alku ja loppu on merkitty avautumis- ja sulkeutumisliiviillä.

Swift-luokassa luokat määritellään yhdellä .swift- lähdekooditiedostolla Objective-C: hen verrattuna, jossa luokat on määritelty kahdessa erillisessä tiedostossa, otsikko- (.h) -tiedostossa ja toteutuksessa (.m).

Muuttujien ilmoittaminen

Seuraava koodi on esimerkki muuttujan ilmoituksesta:

Aloitat vaihtelevan ilmoituksen var- avainsanalla, jota seuraa muuttujan nimi. Seuraavaksi lisätään kaksoispiste, jota seuraa muuttujan tyyppi. Jälkeenpäin voit määrittää muuttujalle arvon (=) osoittajaoperaattorilla.

Jos olet määrittänyt muuttujalle aloitusarvon Swiftissä, sinun ei tarvitse määrittää muuttujan tyyppiä seuraavassa koodissa:

Voit tehdä tämän, koska Swiftillä on jotain nimeltään tyypin päätelmää, jossa se voi selvittää, tai päätellä muuttujan tyyppi sille määritetyn arvon perusteella.

Objective-C: ssä voit ilmoittaa esimerkkimuuttujat luokkatasolla ja paikallisilla muuttujilla menetelmissä. Swiftissä ei ole luokan tason muuttujia - vain paikalliset muuttujat, jotka ilmoitatte menetelmissä. Voit kuitenkin ilmoittaa ominaisuuksia luokkatasolla (katso alla olevien ominaisuuksien ilmoittaminen ).

Asteriskin loppu

Objective-C: ssä käytät tähtiä, joka osoittaa, että muuttujalla on osoitin kohteeseen. Swiftissä vakio tai muuttuja voi sisältää osoitteen muistiin tallennetulle osoitteelle (vaikka se ei ole suora osoitin), mutta sinun ei tarvitse koskaan käyttää tähtiä tässä yhteydessä.

Yksinkertaisten ominaisuuksien ilmoittaminen

Seuraava koodi näyttää esimerkin kiinteistöilmoituksesta:

Kuten näette, se on hyvin samanlainen kuin muuttujan ilmoittaminen, paitsi että ilmoitat ominaisuuden luokkatasolla eikä menetelmässä.

Kuten muuttujien kohdalla, jos määrität ominaisuuden alkuarvon, sinun ei tarvitse määrittää ominaisuuden tyyppiä. Voit myös alustaa ominaisuuksia alustusmenetelmistä (katso lisätietoja kohdasta Alustajat jäljempänä). Seuraava koodi näyttää esimerkin omaisuuden ilmoittamisesta määrittämättä tyyppiä:

Objektiivi-C: ssä ominaisuuksissa oli tyypillisesti taustamuuttujia, joissa kiinteistön todellinen arvo tallennettiin. Swift yksinkertaistaa ominaisuuksia yhdistämällä ominaisuuksien ja esimerkkimuuttujien käsitteet. Ominaisuuksilla ei ole enää taustakohtaisen muuttujan muuttujaa. Kaikki kiinteistöstä ilmoitetaan yhdessä paikassa.

Swiftissä sinun ei tarvitse käyttää itse avainsanaa, jos haluat viitata omaisuuteen, paitsi jos menetelmällä, jossa kirjoitat koodia, on sama nimi kuin ominaisuudella.

Laskettujen ominaisuuksien ilmoittaminen

Swiftissä on myös laskennallisia ominaisuuksia, jotka ovat liittäneet saamaan ja asettamaan menetelmiä, kuten seuraavassa koodissa on esitetty:

Tässä esimerkissä lämpömittariluokassa on yksinkertainen lämpötila- ominaisuus ja laskettu temperateCelsius- ominaisuus.

Huomaa, että lämpömittari- luokan get- ja set- menetelmät eivät viittaa ilmentymämuuttujaan, koska Swiftissä ei ole sellaista asiaa kuin esimerkkimuuttuja!

Tässä tapauksessa vastaanottomenetelmä hakee arvon lämpötilafahrenheit- ominaisuudesta, muuntaa sen Celsiukseen ja palauttaa arvon. Asetusmenetelmä ottaa sille välitetyn arvon, muuntaa sen Fahrenheitiksi ja tallentaa sen jälkeen lämpötilanFahrenheit- ominaisuuteen.

Kiinteistön asetettuun menetelmään siirretty arvo tallennetaan implisiittisesti nimettyyn parametriin newValue . Jos haluat käyttää eri parametrin nimeä, voit määrittää nimen suluissa sarjan jälkeen, kuten seuraavassa koodissa on esitetty:

Parametrin nimen määrittäminen voi helpottaa koodin ymmärtämistä. Tässä esimerkissä parametrin nimen asettaminen celsiusValueen tekee selväksi, että asetettu menetelmä muuntaa arvon Celsiuksesta Fahrenheitiksi.

Menetelmien ilmoittaminen

Seuraava koodi sisältää esimerkin Swift-menetelmäilmoituksesta:

Kuten Objective-C: ssä, ilmoitat Swiftissä esimerkkimenetelmän luokan, johon se kuuluu, avaamisen ja sulkeutumisen välillä.

Voit määrittää menetelmän ilmoittamalla ensin funktion avainsanan, jota seuraa menetelmän nimi. Jos menetelmässä on parametrit, ne sisällytetään sulkeisiin. Jokaiselle parametrille määritetään parametrin nimi ja sen jälkeen kaksoispiste, jota seuraa sen tyyppi. Jos menetelmällä on palautusarvo, lisää sitten tavuviiva ja suurempi kuin merkki ( -> ), jota seuraa palautusarvon tyyppi.

Seuraava koodi sisältää esimerkin menetelmästä, joka ei hyväksy parametreja eikä palauta mitään:

Kuten näette, sulkeita vaaditaan menetelmän nimen jälkeen, vaikka parametreja ei olisi. Menetelmä, joka palauttaa mitään, ei tarvitse paluuarvon ilmaisinta ( -> ) sulkujen jälkeen.

Alustavat menetelmät

Seuraava koodi sisältää esimerkin alustusmenetelmästä, jota käytetään luokan alustamiseen.

Alustusmenetelmiä kutsutaan aina initiksi, eikä toisin kuin Objective-C, koskaan palauta arvoa. Edellä olevassa esimerkissä init- menetelmä hyväksyy nykyisen lämpötilan parametrin, jossa voit siirtää alkulämpötilan. Tämä arvo tallennetaan sitten lämpötilafahrenheit- ominaisuuteen.

Voit luoda useita initalizer-menetelmiä seuraavassa koodinäytteessä esitetyllä tavalla:

Tässä esimerkissä molemmat menetelmät on nimetty init, joten nimien yksilöimiseksi ulkoisille nimille osoitetaan parametrit - fromFrenrenheit jaCelsius . Tämä tekee koko menetelmän nimistä init (fromFahrenheit :) ja init (fromCelsius :) vastaavasti.

On syytä huomata, että Swiftissä init- menetelmät eivät ole perittyjä. Käytännön näkökulmasta tämä tarkoittaa sitä, että sinun ei pitäisi sijoittaa mitään koodia init- menetelmään, jonka haluat korvata alaluokassa. Jos sinulla on koodi, jonka haluat suorittaa luokan alkuvaiheen aikana ja haluat, että aliklassissa oleva koodi voidaan ohittaa, voit luoda erillisen menetelmän, sijoittaa alustuskoodin kyseiseen menetelmään ja soittaa sitten kyseiselle menetelmälle init .

Luokan instanssin luominen

Tässä on esimerkki siitä, miten luodaan luokan esiintymä:

Kuten huomaatte, luodaksesi luokan esiintymän, julistat muuttujan pitämään viittausta luokkaan, kirjoittamalla yhtäläisen merkin (nimitysoperaattori) ja sitten luokan nimen, jota seuraa suluissa.

johtopäätös

Nämä ovat joitakin perusasioista, joita sinun tarvitsee tietää Swift-ohjelmoinnin aloittamiseksi. Tulevissa viroissa sukellan syvemmälle kieltä, jotta voin tulla perehtymään Swiftin uuteen syntaksiin ja rakenteeseen.