Ajánlott, 2024

Szerkesztő Választása

Az öntés és a típus konverzió közötti különbség

A „típusválogatás” és a „típusátalakítás” két fogalom akkor fordul elő, ha egy adattípust másikra kell konvertálni. Ha a két típus kompatibilis egymással, akkor a fordító automatikusan elvégzi az egyik típus más konvertálását. Az alapkonfiguráció és a típusválasztás között azonban alapvető különbség van, azaz a típusátalakítást a fordító „automatikusan” végzi, míg a típusválasztást a programozó „kifejezetten megteheti”. Beszéljük meg a különbségtípust a típusválasztás és az átalakítás között az összehasonlító táblázat segítségével.

Összehasonlító táblázat:

Az összehasonlítás alapjaTípusú öntésTípus konverzió
JelentésA felhasználó egy adattípust hozzárendel egy másik felhasználóhoz, egy öntött operátort használva, majd "Type Casting" -nek nevezzük.Az egyik adattípus automatikus konvertálása a fordító által az úgynevezett "Type Conversion".
AlkalmazottA típusválasztás két „összeférhetetlen” adattípusra is alkalmazható.A típus konverzió csak akkor valósítható meg, ha két adattípus „kompatibilis”.
OperátorAz adattípus másikra történő öntéséhez egy „()” öntési operátorra van szükség.Nincs szükség operátorra.
Az adattípusok méreteA céltípus kisebb lehet, mint a forrás típusa.Itt a céltípusnak nagyobbnak kell lennie, mint a forrás típusa.
MegvalósultA programtervezés során történik.Ez kifejezetten a fordítás során történik.
Konverziós típus
Szűkítés konverzió.A konverzió bővítése.
Példaint a;
b bájt;
...
...
b = (bájt) a;
int a = 3;
úszó b;
b = a; // értéke b = 3.000.

Az öntés meghatározása

A típusválasztás úgy definiálható, mint egy adattípus más adattípusra történő öntése a programozó által a programtervezés idején. Egy adattípus automatikus átalakítása egy másikra nem lehetséges. Előfordulhat, hogy a „céltípus” kisebb, mint a „forrástípus”, így a programozónak a nagyobb adat típusát kifejezetten kisebb adattípusra kell leadnia az öntő operátor „()” használatával. Mivel a nagyobb adattípus kisebb adattípusra van modulálva, úgy is hívják, hogy „szűkítő konverzió”.

Nyilatkozat:

 A target_type = (target_type) változó / érték // céltípus egy olyan típus, amelyben a forrás típusát konvertálni akarja, amely mindig a céltípus. 

Megértjük egy példával. Az 'int' adattípust "bájtra" szeretné konvertálni, most, mivel a "bájt" kisebb, mint "int", a típus konverzió nem megengedett. Itt az „int” -et „bájtra” kellett átkonvertálni az öntő operátor „()” használatával. Mivel az 'int' nagyobb, mint a 'byte', az 'int' mérete az "int mod byte" tartományba csökken.

 int a; b bájt; ... ... b = (bájt) a; 

Amikor a 'float' 'int' -re van átalakítva, a float mérete csonkított, mivel az 'int' nem tárolja a frakcionált értéket. Ha a céltípus mérete túl kicsi ahhoz, hogy a forrás típusa illeszkedjen, akkor a forrás típusa modulo céltípus "tartomány". Az öntés akkor is alkalmazható, ha az adattípusok kompatibilisek, helyes gyakorlat a típusválasztás használata mindenhol, ahol az átalakításra szükség van.

A típuskonverzió meghatározása

A típusátalakítás az egyik adattípus automatikus átalakítása, ha szükséges, a fordító kifejezetten. A típusváltás előtt azonban két feltételnek kell teljesülnie.

  • A forrás- és céltípusnak kompatibilisnek kell lennie.
  • A rendeltetési hely típusának nagyobbnak kell lennie, mint a forrás típusa.

A két feltételnek meg kell felelnie a típusátalakítás eléréséhez, és az ilyen átalakítást úgy nevezzük, hogy „szélesítő konverzió” -nak nevezzük, mivel egy kisebb típust nagyobb típusra alakítanak át, a tágítás kiterjed. Ehhez a kiterjesztő konverzióhoz az „int”, „float” numerikus típusok kompatibilisek egymással, míg a numerikus karakterek és a log és a log és boolean értékek szintén nem kompatibilisek.

Ez a példa jobb képet nyújt erről

 int a = 3; úszó b; b = a; // értéke b = 3.000. 

Itt az 'int' átalakítása 'float'-ra történik, amely nagyobb, mint az' int ', így a forrástípus kiterjesztése történik. Itt nincs szükség öntési operátorra, mivel a fordító kifejezetten megteszi.

A típusválasztás és a konverzió közötti fő különbségek

  1. Az alapvető különbség, amely megkülönbözteti a típusválogatást a típusátalakítástól, az, hogy a típus-öntés az egyik típus átalakítása a másikra, amit a programozó végez. Másrészről a típusátalakítás az egyik típusnak a másikra történő átalakítása, amit a fordító készít a fordítás során.
  2. A típusválasztás alkalmazható olyan adattípusokra, amelyek nem kompatibilisek egymással, de a típusátalakítás csak azokra az adattípusokra alkalmazható, amelyek kompatibilisek egymással.
  3. Az egyik típus másikra történő átalakítása a típusválasztáshoz az „()” öntő operátort igényli, míg az egyik adattípus konvertálása egy másik típusra nem igényel semmilyen operátort.
  4. Miközben egy adattípust egy másik típusra konvertál, a céltípus nagyobb vagy kisebb lehet, mint a forrás típusa. Másrészt a céltípusnak nagyobbnak kell lennie, mint a típusátalakításnál használt forrástípus.
  5. Az egyik típus egy másik típusra történő átalakítása a típusú öntés során történik, míg a típusátalakítás során az egyik típus másikra történő átalakítása kifejezetten a fordítás során történik.
  6. A típusválogatást szűkítő konverziónak nevezzük, mert itt a céltípus kisebb lehet, mint a forrás típusa, míg a típus konverziót szélesítő konverziónak nevezzük, mert itt a céltípusnak nagyobbnak kell lennie, mint a forrás típusa.

Következtetés:

Azt a következtetést lehet levonni, hogy a típusátalakítás és a típusválasztás mindkettőnek az egyik adattípusának egy másikra történő konvertálása, de abban különbözik abban az értelemben, hogy a típusú öntést a programozó végzi, a leadott operátor '()' használatával és a típusátalakítással a fordító, és nem használ operátort.

Top