Delphin ohjelmointikieli on esimerkki voimakkaasti kirjoitetusta kielestä. Tämä tarkoittaa, että kaikkien muuttujien on oltava tietyn tyyppisiä. Tyyppi on lähinnä tietyn tyyppisen datan nimi. Kun julistamme muuttujan, meidän on määritettävä sen tyyppi, joka määrittää muuttujan arvojoukon ja sille suoritettavat toiminnot.
Monet Delphin sisäisistä tietotyypeistä, kuten Integer tai jono, voidaan tarkentaa tai yhdistää uusien tietotyyppien luomiseksi. Tässä artikkelissa nähdään, kuinka luoda mukautettuja ordinal datatyyppejä Delfoi.
Tavalliset tyypit
Järjestötietotyyppien määrittelevät ominaisuudet ovat: Niiden on muodostettava rajallinen määrä elementtejä ja ne on jonkin verran järjestettävä.
Yleisimmät esimerkit ordinaalisista tietotyypeistä ovat kaikki kokonaisluvutyypit sekä Char ja boolean tyyppi. Tarkemmin sanottuna Object Pascalilla on 12 ennalta määritettyä ordinaalityyppiä: Kokonaisluku, Shortint, Smallint, Longint, Byte, Word, Cardinal, Boolean, ByteBool, WordBool, LongBool ja Char. Käytettävissä on myös kaksi muuta luokkaa käyttäjän määrittämiä ordinaarityyppejä: luetellut tyypit ja alilaitetyypit.
Kaikissa ordinaalisissa tyypeissä on järkevää siirtyä taaksepäin tai eteenpäin seuraavaan elementtiin. Esimerkiksi oikeat tyypit eivät ole normaalia, koska eteen- tai taaksepäin liikkuminen ei ole järkevää. Kysymys "Mikä on seuraava todellinen 2.5 jälkeen?" on merkityksetöntä.
Koska jokaisella arvolla ensimmäistä lukuun ottamatta jokaisella arvolla on yksilöivä edeltäjä ja jokaisella arvolla viimeistä lukuun ottamatta on ainutlaatuinen seuraaja, useita ennalta tehtävät käytetään työskennellessä ordinaarityyppien kanssa:
Toimia | Vaikutus |
Ord (X) | Antaa elementin indeksin |
Ennustettu (X) | Siirtyy tyypissä ennen X lueteltuun elementtiin |
Succ (X) | Siirtyy tyypissä X: n jälkeen lueteltuun elementtiin |
Joulukuu (X; n) | Siirtää n elementtiä takaisin (jos n jätetään pois, siirtää 1 elementtiä takaisin) |
Inc (X; n) | Siirtää n elementtiä eteenpäin (jos n jätetään pois, siirtyy 1 elementti eteenpäin) |
Matala (X) | Palauttaa matalimman arvon ordinaattitietotyypin X alueella |
Korkea (X) | Palauttaa korkeimman arvon perustietotyypin X alueella |
Esimerkiksi korkea (tavu) palauttaa arvon 255, koska tyypin tavun suurin arvo on 255, ja Succ (2) antaa arvon 3, koska 3 on seuraajan 2.
Huomaa: Jos yritämme käyttää Succiä, Delphi luo viimeisen elementin a ajoaikoja koskeva poikkeus jos alueen tarkistus on käytössä.
Delphi-numeroitu tyyppi
Helpoin tapa luoda uusi esimerkki ordinaalityypistä on yksinkertaisesti luetella joukko elementtejä jossain järjestyksessä. Arvoilla ei ole luontaista merkitystä, ja niiden järjestysjärjestys noudattaa järjestystä, jossa tunnisteet luetellaan. Toisin sanoen luettelo on luettelo arvoista.
tyyppi TWeekDays = (maanantai, tiistai, keskiviikko, torstai, perjantai, lauantai, sunnuntai);
Kun määrittelemme luetellun tietotyypin, voimme julistaa muuttujat tämän tyyppisiksi:
var SomeDay: TWeekDays;
Lasketun tietotyypin ensisijainen tarkoitus on tehdä selväksi, mitä tietoja sinun on ohjelmoida tulee manipuloimaan. Luetteloitu tyyppi on todella vain lyhyt tapa antaa sekvenssiarvot vakioille. Nämä julistukset huomioon ottaen tiistai on tyypin vakio TWeekDays.
Delphi antaa meille mahdollisuuden työskennellä lueteltujen elementtien kanssa indeksin avulla, joka tulee järjestyksestä, johon ne on lueteltu. Edellisessä esimerkissä maanantaina TWeekDays Tyyppi-ilmoituksessa on indeksi 0, tiistaina on indeksi 1 ja niin edelleen. Edellä olevassa taulukossa luetellut toiminnot sallivat esimerkiksi käyttää Succ (perjantai) "mennä" lauantaihin.
Nyt voimme kokeilla jotain:
varten SomeDay: = Maanantai että sunnuntai tehdäjos SomeDay = Tiistai sitten ShowMessage ('Tiistai se on!');
Delphi-visuaalikomponenttikirjasto käyttää lueteltuja tyyppejä monissa paikoissa. Esimerkiksi lomakkeen sijainti määritetään seuraavasti:
TPosition = (poSuunniteltu, poDefault, poDefaultPosOnly, poDefaultSizeOnly, poScreenCenter);
Käytämme Position (Object Inspectorin kautta) saadaksesi tai asettaaksesi muoto.
Subrange tyypit
Yksinkertaisesti sanottuna, alialuetyyppi edustaa osajoukkoa arvoista toisessa ordinaarityypissä. Yleensä voimme määritellä minkä tahansa alialueen aloittamalla mistä tahansa ordinaalisella tyypillä (mukaan lukien aiemmin määritelty lueteltu tyyppi) ja käyttämällä kaksoispistettä:
tyyppi TWorkDays = Maanantai.. Perjantai;
Tässä TWorkDays sisältää arvot maanantaina, tiistaina, keskiviikkona, torstaina ja perjantaina.
Siinä kaikki - lue nyt!