Întrebarea 30 - tastarea strictă și non-strictă

În primul rând, să analizăm principalele diferențe dintre tastarea puternică și cea slabă. În primul rând, tastarea slabă (non-strictă) presupune conversia implicită a calculului / tipului și / sau a polimorfismului adhoc. Astfel, tipul variabilei este evaluat în momentul atribuirii unei anumite valori.







Polimorfismul special (sau latino adhoc) permite o implementare specială pentru datele fiecărui tip. De exemplu, funcția de comparație folosită în exemplul nostru ar trebui să fie definită diferit pentru numere, nopți, liste, adică este în mod special polimorf.

Cu tastare puternică (strictă), toate tipurile sunt cunoscute în avans, iar transformarea se realizează în conformitate cu reguli stricte prestabilite. Strict, desigur, în ceea ce privește regulile adoptate pentru tastarea slabă.

Tiparea puternică (strictă) reprezintă limbajul C #. Dacă mai devreme în C + + am putea scrie:







MyObj * m_pObj = GenerațiMyObj ();

Că deja în conversia de tip C # nu trece, atunci fii gata să faci totul în mod explicit:

În acest tip de tastare, pentru a atribui o variabilă la o anumită valoare, trebuie mai întâi să declarăm această variabilă și să o atribuim unui tip. Ie Principala diferență față de tastarea slabă este că la momentul compilării trebuie să fie cunoscute toate tipurile. De asemenea, nu se poate pune problema tipului de polimorfism adhoc. De exemplu, în cazul polimorfismului funcțional, operația de adăugare, definită pentru tipurile întregi, va duce pur și simplu la o eroare de compilare atunci când este utilizată cu șiruri de caractere.

Tiparea strictă are un avantaj incontestabil, un astfel de cod este mai fiabil. Cu toate acestea, există avantaje vocale, limba cu un astfel de sistem de tip este mai flexibilă. În limbile compilate (C, C ++), tastarea strictă este mai convenabilă.

Un tip de date este o caracteristică a unui set de date care determină:

- gamă de valori posibile de date din set;

- Operațiuni permise care pot fi efectuate pe aceste valori;

- modul de stocare a acestor valori în memorie.

- tipuri simple de date: numere întregi, numere reale, etc;

- date compozite: matrice, fișiere etc.







Articole similare

Trimiteți-le prietenilor: