Delphi tavalised ja loendatud andmetüübid

Delphi omad programmeerimiskeel on näide tugevalt trükitud keelest. See tähendab, et kõik muutujad peavad olema teatud tüüpi. Tüüp on sisuliselt teatud tüüpi andmete nimi. Muutuja deklareerimisel peame täpsustama selle tüübi, mis määrab muutuja väärtuste kogumi ja sellega tehtavad toimingud.

Paljud Delphi sisseehitatud andmetüübid, näiteks Integer või Keel, saab täpsustada või kombineerida, et luua uusi andmetüüpe. Selles artiklis näeme, kuidas luua kohandatud tavalisi andmetüüpe Delphi.

Tavalised tüübid

Järjestikuste andmetüüpide määratlevad omadused on järgmised: need peavad koosnema piiratud arvust elementidest ja neid tuleb mingil viisil järjestada.

Tavalisemate andmetüüpide levinumad näited on kõik täisarvud, Char ja Boolean tüüp. Täpsemalt, Object Pascalil on 12 etteantud tüüptüüpi: täisarv, Shortint, Smallint, Longint, Byte, Word, Cardinal, Boolean, ByteBool, WordBool, LongBool ja Char. Samuti on veel kaks kasutajate määratletud tüüptüüpide klassi: loendatud tüübid ja alamtüübid.

Mis tahes ordinaalse tüübi korral peab olema mõttekas liikuda edasi või tagasi järgmise elemendi juurde. Näiteks pole päris tüübid tavalised, sest tagasi või edasi liikuda pole mõtet. Küsimus "Mis on järgmine päris pärast 2.5?" on mõttetu.

instagram viewer

Kuna definitsiooni järgi on igal väärtusel, välja arvatud esimene, kordumatu eelkäija ja igal väärtusel, välja arvatud viimane, on kordumatu järeltulija, mitu eelnevalt määratletud funktsioonid kasutatakse tavaliste tüüpidega töötamisel:

Funktsioon Efekt
Ord (X) Annab elemendi indeksi
Eeldatud (X) Läheb elemendis X loetletud elemendi juurde
Succ (X) Läheb elemendis X-i järel loetletud elemendi juurde
Detsember (X; n) Liigutab n elementi tagasi (kui n jäetakse välja, liigub 1 element tagasi)
Inc (X; n) Liigutab n elementi edasi (kui n jäetakse välja, liigub 1 element edasi)
Madal (X) Tagastab madalaima väärtuse tavalise andmetüübi X vahemikus
Kõrge (X) Tagastab kõrgeima väärtuse tavalise andmetüübi X vahemikus


Näiteks, High (Byte) tagastab 255, kuna tüübi Byte suurim väärtus on 255, ja Succ (2) tagastab 3, kuna 3 on 2 järglane.

Märkus. Kui proovime kasutada Succi, genereerib Delphi viimase elemendina a käitusaja erand kui vahemiku kontroll on sisse lülitatud.

Delphi loendatud tüüp

Lihtsaim viis ordinaaltüübi uue näite loomiseks on lihtsalt elementide hunniku loetlemine mingis järjekorras. Väärtustel puudub loomupärane tähendus ja nende korrapärasus järgib identifikaatorite loetlemise järjekorda. Teisisõnu, loend on väärtuste loetelu.

tüüp TWeekDays = (esmaspäev, teisipäev, kolmapäev, neljapäev, reede, laupäev, pühapäev);

Kui oleme loendatud andmetüübi määratlenud, võime muutujad seda tüüpi kuulutada:

var SomeDay: TWeekDays;

Loetletud andmetüübi peamine eesmärk on selgitada, millised andmed teie programmi hakkavad manipuleerima. Loetletud tüüp on tegelikult ainult lühike viis järjestikuste väärtuste määramiseks konstantidele. Neid avaldusi arvestades on teisipäev tüüpkonstant TWeekDays.

Delphi võimaldab meil töötada elementidega loenditüübis, kasutades indeksit, mis pärineb järjekorrast, milles need loetleti. Eelmises näites oli esmaspäev TWeekDays tüübideklaratsioonil on indeks 0, teisipäeval on indeks 1 jne. Eelmises tabelis loetletud funktsioonid võimaldavad meil näiteks laupäeva "minekuks" kasutada Succ'i (reedel).

Nüüd saame proovida midagi sellist:

jaoks SomeDay: = Esmaspäev kuni Pühapäeval tehakui SomeDay = teisipäev siis
ShowMessage ('Teisipäev on!');

Delphi visuaalsete komponentide raamatukogu kasutab mitmel pool loendatud tüüpe. Näiteks vormi vorm määratletakse järgmiselt:

TPpositsioon = (poDesigned, poDefault, poDefaultPosOnly, poDefaultSizeOnly, poScreenCenter);

Objekti suuruse ja paigutuse saamiseks või seadistamiseks kasutame positsiooni (läbi Objektiinspektori) vorm.

Alamtüübid

Lihtsamalt öeldes tähistab alamtüüp väärtuste alamhulka teises ordinaarses tüübis. Üldiselt saame määratleda mis tahes alamjärjestuse, alustades suvalisest tüübist (sealhulgas eelnevalt määratletud loendatud tüübist) ja kasutades kahekordset punkti:

tüüp TWorkDays = Esmaspäev.. Reede;

Siin sisaldab TWorkDays väärtusi esmaspäev, teisipäev, kolmapäev, neljapäev ja reede.

See on kõik - mine nüüd loetle!