Mojo Academy · Oppitunti

Geneeriset traitien päällä toimivat funktiot

Kirjoita yksi funktio monille tyypeille.

Oppitunti 4/413 vaihetta

Geneeriset traitien päällä toimivat funktiot on ilmainen Mojo Academy-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Mojo Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Mojo Academy-kurssilla on yhteensä 4 oppituntia.

Yksi funktio, monta tyyppiä

Traitien todellinen voima on geneerisessä koodissa: kirjoitatte funktion kerran, ja se toimii kaikilla traitin toteuttavilla tyypeillä. 🚀

Trait rajoitteena

Traitia käytetään geneerisen parametrin rajoitteena, joka lupaa tyypin tarjoavan kutsumanne metodit.

Geneerisen parametrin syntaksi

Hakasulkeissa nimeätte tyyppiparametrin ja traitin, joka sen on täytettävä, ja käytätte parametria sitten minkä tahansa tyypin tapaan.

fn announce[T: Greetable](item: T):
    print(item.greet())

Trait-metodien kutsuminen

Funktion sisällä voitte kutsua mitä tahansa traitin takaamaa metodia. Kääntäjä tietää, että greet on olemassa tyypillä T.

Toimii jokaisella toteuttajalla

Välittäkää Dog tai Robot samaan funktioon. Molemmat toteuttavat Greetable-traitin, joten molemmat hyväksytään ongelmitta.

announce(Dog("Rex"))
announce(Robot())

Tyyppiturvallisuus säilyy

Geneeriset tyypit eivät ole rajoittamattomia. Jos tyyppi ei täytä rajoitetta, kääntäjä hylkää sen ennen ohjelman suorittamista.

Ei suoritusajan kustannusta

Mojo erikoistaa geneerisen koodin käännösaikana ja tuottaa nopean version kutakin tyyppiä varten. Joustavuus ei maksa suorituskykyä.

Vähemmän toistoa

Ilman geneerisiä tyyppejä joutuisitte kopioimaan funktion jokaista tyyppiä varten. Trait-rajoite antaa yhden määritelmän palvella niitä kaikkia ja vähentää toistoa.

Useita rajoitteita

Parametrilta voidaan vaatia useita traitteja samanaikaisesti, jolloin varmistetaan, että tyypillä on kaikki funktion tarvitsemat ominaisuudet.

Suunnittele traitien ympärille

Hyvät Mojo-rajapinnat pyytävät vain tarvitsemansa pienimmän traitin. Funktiot pysyvät joustavina ja ilmaisevat silti tarkat vaatimukset.

Kokonaiskuva

Trait, toteutus ja geneerisyys yhdistyvät: määritelkää sopimus, toteuttakaa se ja kirjoittakaa sen päälle yksi uudelleenkäytettävä funktio.

fn print_all[T: Stringable](x: T):
    print(String(x))

Pikatarkistus

Miksi geneerisessä funktiossa käytetään trait-rajoitetta?

Kertaus

Trait-rajoitteen sisältävät geneeriset funktiot toimivat kaikilla traitin toteuttavilla tyypeillä ja pysyvät tyyppiturvallisina ja nopeina. Nyt osaatte kirjoittaa uudelleenkäytettävää Mojo-koodia! 🎉

Aloita maksutta

Opi Mojo tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
30
Oppitunnit
120

Usein kysytyt kysymykset

Onko oppitunti ”Geneeriset traitien päällä toimivat funktiot” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Mojo Academy-oppimispolun 3 oppituntia, myös oppitunnin “Geneeriset traitien päällä toimivat funktiot”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Mojo Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Geneeriset traitien päällä toimivat funktiot”?

Kirjoita yksi funktio monille tyypeille. Harjoittelet Mojo Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Mojo Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Mojo Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.

Kuinka kauan ”Geneeriset traitien päällä toimivat funktiot”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Mojo Academy-oppitunnilla?

Kyllä. Jokainen Mojo Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Mikä trait on?
  2. Struct-rakenteen sovittaminen traitiin
  3. Sisäänrakennetut traitit, kuten Copyable
  4. Geneeriset traitien päällä toimivat funktiot
← Takaisin: Mojo Academy