Dart Academy · Oppitunti

Extension-tyypit kustannuksettomille kääreille

Kääri tyyppi ilman ajonaikaista lisäkustannusta

Oppitunti 4/413 vaihetta

Extension-tyypit kustannuksettomille kääreille on ilmainen Dart Academy-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Dart Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Dart Academy-kurssilla on yhteensä 4 oppituntia.

Erilainen työkalu

extension type on uudempi ominaisuus: se käärii olemassa olevan tyypin ja antaa sille uuden rajapinnan ilman suorituksenaikaista kustannusta.

Käärikää ilman paketointia

Toisin kuin varsinainen kääreluokka, extension type ei lisää yhtään objektia suorituksen aikana. Suorituksen aikana se on yksinkertaisesti taustalla oleva arvo.

extension type UserId(int id) {}

Representaatiotyyppi

Sulkeissa oleva arvo on representaatiotyyppi. Tässä UserId on todellisuudessa vain int, jolla on turvallisempi nimi.

extension type Meters(double value) {}

Luokaa sellainen helposti

Luotte extension typen aivan kuten kutsuisitte konstruktoria ja välitätte taustalla olevan arvon suoraan sille.

var id = UserId(42);
var d = Meters(3.5);

Lisätkää turvallisia metodeja

Rungon sisällä voitte lisätä metodeja ja gettereitä, jotka käsittelevät käärittyä arvoa ja antavat sille varsinaisen merkityksen.

extension type Meters(double value) {
  Meters plus(Meters o) => Meters(value + o.value);
}

Vahvempi kuin typedef

typedef on vain alias, mutta extension type on erillinen tyyppi. Ette voi vahingossa sekoittaa UserId-arvoa tavalliseen int-arvoon.

int raw = 42;
// UserId u = raw; // error: not interchangeable

Piilottakaa taustalla olevan tyypin rajapinta

Oletusarvoisesti extension type piilottaa käärittynä olevan tyypin jäsenet, joten kutsuttavissa ovat vain julkistamanne metodit.

var m = Meters(2.0);
// m.toStringAsFixed(2); // not available unless exposed

Tai toteuttakaa rajapinta jäsenten paljastamiseksi

Lisäämällä implements voitte välittää taustalla olevan tyypin jäsenet käyttöön, jolloin kutsuja voi käyttää sekä omaa rajapintaanne että perustyyppiä.

extension type Score(int value) implements int {}
print(Score(9) + 1); // 10

Nolla suorituksenaikaista lisäkustannusta

Koska varsinaista objektia ei luoda, extension types eivät maksa suorituksen aikana mitään. Tyyppiturvallisuus tulee käyttöön ilman lisäkustannuksia.

Sopii erinomaisesti toimialueen tunnisteisiin

Ne ovat hyödyllisiä tyypitetyille tunnisteille, kuten UserId tai Email, ja estävät välittämästä väärää int-arvoa väärään paikkaan.

void load(UserId id) {}
load(UserId(7)); // load(7) would not compile

Laajennukset ja extension types

Laajennus lisää metodeja kaikkien yhteiseen tyyppiin, kun taas extension type luo arvon ympärille uuden, erillisen tyypin.

Pikatarkistus

Viimeinen tarkistus: mikä tekee extension typeistä erityisiä?

Kertaus: extension types

Tutustuitte extension types -tyyppeihin: ne ovat erillisiä ja suorituksen aikana maksuttomia kääreitä representaatiotyypin ympärillä. Ne sopivat erinomaisesti turvallisiin tunnisteisiin ja yksiköihin ilman suorituksenaikaista lisäkustannusta. 🏁

Aloita maksutta

Opi Dart 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 ”Extension-tyypit kustannuksettomille kääreille” ilmainen?

Kyllä – oppitunnin ”Extension-tyypit kustannuksettomille kääreille” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Dart Academy-kurssin, päivitä CoddyKit PROhon. Dart Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Extension-tyypit kustannuksettomille kääreille”?

Kääri tyyppi ilman ajonaikaista lisäkustannusta Harjoittelet Dart Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Dart Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Dart 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 ”Extension-tyypit kustannuksettomille kääreille”-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ä Dart Academy-oppitunnilla?

Kyllä. Jokainen Dart 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. Ensimmäisen extension-laajennuksen kirjoittaminen
  2. Geneeristen tyyppien laajennukset
  3. Staattiset extension-jäsenet ja ristiriidat
  4. Extension-tyypit kustannuksettomille kääreille
← Takaisin: Dart Academy