Yleinen tyyppi
Vuonna tietojenkäsittelytiede , yleinen tyypit ovat tietotyyppejä jossa on mahdollisuus määrittää tyypin parametrit. Puhutaan myös parametrisesta polymorfismista .
Yleinen tyyppi antaa mahdollisuuden luoda tietotyyppejä, jotka erottuvat taustalla olevista tyypeistä. Joten voidaan ohjelmoida luettelo numeroista, merkkiluettelo ja päivämäärälista samalla tavalla; H. lisäyksen, hakemisen ja poistamisen algoritmit toimisivat aina samalla tavalla. Siksi on suotavaa toteuttaa luettelo näistä tyypeistä riippumatta.
Esimerkiksi vuonna Java geneerinen lista olisi määritelty seuraavasti:
List<T>
Tämä tarkoittaa List<T> yleistä tyyppiä , ja Tsitä kutsutaan tyypin parametriksi . Yleisluontoisia esiintyy kaikissa ohjelmointikielet että paradigma on geneerisen ohjelmoinnin tukea.
Ohjelmointikielissä geneeristen tyyppien tukemiseen on periaatteessa kaksi lähestymistapaa. Yksi on se, että samaa koodia käytetään GenerischerTyp<T>kaikille Ts ja se käyttää menetelmien dynaamisen linkityksen erityisiä ominaisuuksia T. Toinen tapa u. a. C ++ on kyse mallien käytöstä . Tyyppiparametri korvataan suoraan tietyllä tyypillä kääntöhetkellä. Jos geneeriselle tyypille on useita erityyppisiä parametreja, luodaan useita luokkia myös C ++: ssa.
Kanssa NET , Microsoft vie keskellä maa yhdistää molempien edut menetelmät: yleinen luokka käyttää samaa koodiksi kaikille viite tyyppejä tyyppi parametreja , koska sisäisen esitysmuodon (yksinkertainen viite ) kaikista viite tyyppejä on sama. Kun käytetään arvotyyppejä tyypin parametreina, jokaiselle arvotyypille luodaan erillinen natiivikoodipolku ajon aikana, kun sitä käytetään ensimmäistä kertaa.
Yleiset tyypit eri ohjelmointikielillä
- C ++ toteuttaa yleisiä tyyppejä mallien avulla, esim. Luokkamallit.
- Yleinen ohjelmointi Java-ohjelmassa
- C # ja muut .NET-kielet ovat tarjonneet yleisiä .NET 2.0: sta lähtien
- Ada- ohjelmointikielellä yleisiä tyyppejä käytetään pakettien parametrointiin.
- Delphi on tarjonnut tukea yleistyypeille Delphi 2009: n jälkeen. Free Pascal tukee yleisiä luokkia versiosta 2.2.
- Haxe- ohjelmointikieli tarjoaa yleisiä tyyppejä Flashille, JavaScriptille ja palvelinpuolen suoritukselle (kaikki ovat kolme aluetta, joilla geneeriset muuten eivät ole muuten mahdollisia)
- Haskell tarjoaa erittäin tehokkaan tyyppisen järjestelmän