Geneeriset luokat ja metodit
Parametrisoi omat tyyppisi
Geneeriset luokat ja metodit on ilmainen Dart Academy-oppitunti CoddyKitissä. Tämä on oppitunti 2/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.
Omat geneeriset tyypit
Listin kaltaiset sisäänrakennetut tyypit ovat geneerisiä, ja voitte kirjoittaa myös omia geneerisiä tyyppejä. Tyyppiparametrin avulla luokka voi mukautua mihin tahansa kutsujan valitsemaan tyyppiin. 🧩
Tyyppiparametrin nimeäminen
Lisäätte tyyppiparametrin kulmasulkeisiin luokan nimen jälkeen. Kirjain T on yleinen paikanhaltija, joka edustaa todellista tyyppiä.
class Box<T> {
T value;
Box(this.value);
}T:n käyttäminen luokan sisällä
Luokan sisällä T toimii kuten mikä tahansa tyypin nimi. Voitte käyttää sitä kentissä, parametreissa ja palautusarvoissa kaikkialla luokan rungossa.
class Box<T> {
T value;
Box(this.value);
T get() => value;
}Tyypin määrittäminen
Kun luotte olion, valitsette todellisen tyypin. Tässä T:stä tulee int, joten tämä säilö sisältää aina vain kokonaislukuja.
var b = Box<int>(42);
int n = b.get();Antakaa Dartin päätellä tyyppi
Usein voitte jättää tyypin ilmoittamatta, koska Dart lukee sen argumentista. Tyypin päättely havaitsee String-tyypin ja asettaa T:n puolestanne.
var b = Box('hi');Useita tyyppiparametreja
Luokka voi vastaanottaa useamman kuin yhden tyyppiparametrin, jotka erotetaan pilkuilla. Kahden eri tyypin pari on klassinen esimerkki.
class Pair<A, B> {
A first;
B second;
Pair(this.first, this.second);
}Geneeriset metodit
Voitte tehdä yksittäisestä metodista geneerisen myös ei-geneerisessä luokassa. Sijoittakaa tyyppiparametri juuri ennen parametriluetteloa.
T firstOf<T>(List<T> items) => items[0];Metoditkin päättelevät tyypin
Geneerinen metodi päättelee yleensä tyyppinsä sille välitetyistä argumenteista. Kutsukaa metodia tavalliseen tapaan, niin Dart selvittää loput.
var n = firstOf([1, 2, 3]);
var s = firstOf(['a', 'b']);Tyypitysturvallisuus palaa
Koska metodi seuraa T-tyyppiä, tuloksella säilyy oikea tyyppi. String-listalle kutsuttu firstOf palauttaa String-arvon ilman tyyppimuunnosta.
String x = firstOf(['a', 'b']);Uudelleenkäytettävä, ei toisteinen
Yksi geneerinen määritelmä korvaa useita kopioituja versioita. Kirjoitatte logiikan kerran, ja se toimii yhtä lailla int-, String- kuin omien tyyppienne kanssa.
Valitkaa selkeät nimet
Yksikirjaimiset nimet, kuten T, E ja K, ovat tavanomaisia, mutta kuvaava nimi voi auttaa. Monimutkaisessa koodissa selkeys on tärkeämpää kuin lyhyys.
Pikatarkistus
Mihin tyyppiparametri sijoitetaan luokassa?
Kertaus
Opitte lisäämään omiin luokkiinne ja metodeihinne tyyppiparametrin, kuten T:n. Dart täyttää sen usein tyypin päättelyn avulla, joten koodi pysyy uudelleenkäytettävänä ja turvallisena. ✅
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 ”Geneeriset luokat ja metodit” ilmainen?
Kyllä – oppitunnin ”Geneeriset luokat ja metodit” 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 ”Geneeriset luokat ja metodit”?
Parametrisoi omat tyyppisi 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 2/4.
Kuinka kauan ”Geneeriset luokat ja metodit”-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
- Miksi geneeriset tyypit päihittävät dynamic-tyypin
- Geneeriset luokat ja metodit
- Rajoitetut tyyppiparametrit extends-avainsanalla
- Geneeriset kokoelmat käytännössä