Delfi programmēšanas valoda ir izteikti drukātas valodas piemērs. Tas nozīmē, ka visiem mainīgajiem jābūt kāda veida. Tips būtībā ir veida tips datiem. Deklarējot mainīgo, mums jānorāda tā tips, kas nosaka vērtību kopu, kuru mainīgais var turēt, un darbības, kuras ar to var veikt.
Daudzi no Delphi iebūvētiem datu veidiem, piemēram, Integer vai Stīgu, var uzlabot vai apvienot, lai izveidotu jaunus datu tipus. Šajā rakstā mēs redzēsim, kā izveidot pielāgotos parasto datu tipus Delfi.
Parastie tipi
Kārtējo datu tipu raksturīgās pazīmes ir šādas: tām jāsastāv no ierobežota skaita elementiem un tie kaut kādā veidā jāpasūta.
Visizplatītākie parasto datu tipu piemēri ir veseli skaitļi, kā arī Char un Būla tips. Precīzāk, Object Pascal ir 12 iepriekš definēti kārtas tipi: vesels skaitlis, Shortint, Smallint, Longint, baits, Word, kardināls, Būla, ByteBool, WordBool, LongBool un Char. Pastāv arī divas citas lietotāja definētu kārtas numuru tipi: uzskaitītie tipi un subrange tipi.
Jebkura kārtējā tipa gadījumā ir jēga virzīties uz priekšu vai atpakaļ uz nākamo elementu. Piemēram, reālie tipi nav parasts, jo virzīties atpakaļ vai uz priekšu nav jēgas. Jautājums "Kāda ir nākamā reālā pēc 2,5?" ir bezjēdzīga.
Tā kā katrai vērtībai, izņemot pirmo, pēc definīcijas ir unikāls priekšgājējs, un katrai vērtībai, izņemot pirmo, ir unikāls pēctecis, vairākas iepriekš noteiktas funkcijas tiek izmantoti, strādājot ar kārtas tipiem:
Funkcija | Efekts |
Ord (X) | Piešķir elementa indeksu |
Paredzēts (X) | Dod uz elementu, kas norādīts pirms X veida |
Succ (X) | Dod uz elementu, kas norādīts aiz X veida |
Decembris (X; n) | Pārvieto n elementus atpakaļ (ja n tiek izlaists, pārvieto 1 elementu atpakaļ) |
Inc (X; n) | Pārvieto n elementus uz priekšu (ja n tiek izlaists, pārvieto 1 elementu uz priekšu) |
Zems (X) | Atgriež zemāko vērtību kārtējā datu veida X diapazonā |
Augsts (X) | Atgriež augstāko vērtību kārtējā datu veida X diapazonā |
Piemēram, augsts (baits) atgriež 255, jo tipa baita augstākā vērtība ir 255, un Succ (2) atgriež 3, jo 3 ir 2 pēctecis.
Piezīme: Ja mēs mēģinām izmantot Succ, kad pēdējais elements Delphi ģenerēs izpildes laika izņēmums ja diapazona pārbaude ir ieslēgta.
Delphi uzskaitītais tips
Vienkāršākais veids, kā izveidot jaunu ordinārā tipa piemēru, ir vienkārši uzskaitīt virkni elementu kaut kādā secībā. Vērtībām nav raksturīgas nozīmes, un to kārtība atbilst secībai, kurā uzskaitīti identifikatori. Citiem vārdiem sakot, uzskaitījums ir vērtību saraksts.
tips TWeekDays = (pirmdiena, otrdiena, trešdiena, ceturtdiena, piektdiena, sestdiena, svētdiena);
Kad esam definējuši uzskaitīto datu tipu, mainīgos var deklarēt kā šāda veida:
var SomeDay: TWeekDays;
Uzskaitītā datu veida galvenais mērķis ir skaidri norādīt, kādi dati ir jūsu programma manipulēs. Uzskaitītais tips tiešām ir tikai saīsināts veids, kā secīgajām vērtībām piešķirt konstantes. Ņemot vērā šīs deklarācijas, otrdiena ir veida konstante TWeekDays.
Delphi ļauj mums strādāt ar elementiem uzskaitītā veidā, izmantojot indeksu, kas nāk no secības, kādā tie tika uzskaitīti. Iepriekšējā piemērā pirmdiena TWeekDays tipa deklarācijā ir indekss 0, otrdien ir indekss 1 utt. Iepriekš tabulā uzskaitītās funkcijas ļauj mums, piemēram, izmantot Succ (piektdiena), lai “pārietu” uz sestdienu.
Tagad mēs varam izmēģināt kaut ko līdzīgu:
priekš SomeDay: = Pirmdiena uz Svētdien darītja SomeDay = Otrdiena tad ShowMessage ('Otrdien tas ir!');
Delphi vizuālo komponentu bibliotēka daudzās vietās izmanto uzskaitītos tipus. Piemēram, formas pozīcija tiek definēta šādi:
TPpozīcija = (poDesigned, poDefault, poDefaultPosOnly, poDefaultSizeOnly, poScreenCenter);
Mēs izmantojam pozīciju (caur objekta inspektoru), lai iegūtu vai iestatītu forma.
Pakārtotie veidi
Vienkārši sakot, apakškārtas tips apzīmē citu kārtas vērtību vērtību apakškopu. Parasti jebkuru apakšdaļu var definēt, sākot ar jebkuru kārtas numuru (ieskaitot iepriekš definētu uzskaitītu tipu) un izmantojot dubultu punktu:
tips TWorkDays = Pirmdiena.. Piektdiena;
Šeit TWorkDays ietver vērtības pirmdiena, otrdiena, trešdiena, ceturtdiena un piektdiena.
Tas arī viss - tagad ejiet uzskaitīt!