Разлика између лијевања типа и претворбе типа
Садржај
Основна разлика између претворбе типа и кастинга типа, тј. Претворба типа врши се „аутоматски“ од стране преводитеља, док програмер треба изричито извести.
Два термина „лијевање типа“ и „претворба типа“ настају када постоји потреба за претварањем једне врсте података у другу. Кад су две врсте компатибилне једна с другом, тада преводилац једне врсте у другу врши аутоматски компајлер. Разговарајмо о разлици уврштавања и конверзије типа уз помоћ упоредног графикона.
- Упоредни графикон
- Дефиниција
- Кључне разлике
- Закључак
Упоредни графикон:
Основе за упоређивање | Тип Цастинг | Унесите конверзију |
---|---|---|
Значење | Корисник један тип података додељује другом кориснику, користећи оператер цаст, а затим се назива "Цастинг Типе". | Претварање једног типа података у други аутоматски од стране преводиоца назива се „Конверзија типа“. |
Примењено | Пребацивање типа се такође може применити на две некомпатибилне врсте података. | Конверзија типа може се провести само када су двије врсте података компатибилне. |
Оператор | За пребацивање врсте података на други, потребан је оператор за лијевање (). | Није потребан оператер. |
Величина типова података | Врста одредишта може бити мања од врсте извора. | Овде врста одредишта мора бити већа од врсте извора. |
Имплементирано | Изводи се током дизајнирања програма. | То се изричито врши при састављању. |
Тип конверзије | Ужа конверзија. | Проширење конверзије. |
Пример | инт а; бајт б; ... ... б = (бајт) а; | инт а = 3; флоат б; б = а; // вредност у б = 3.000. |
Дефиниција типа ливења
Уливање типа може се дефинисати као, пребацивање једне врсте података у другу врсту података, од стране програмера, у време пројектовања програма. Аутоматска конверзија једне врсте података у другу није могућа стално. Може бити услов да је „одредишна врста” мања од „врсте извора”. Због тога, програмер мора да изричито повеће већи тип података на мањи тип података користећи оператора за кастинг '()'. Како се већи тип података модулира на мањи тип података, такођер се назива и "сужавање конверзије".
Изјава:таргет_типе = (таргет_типе) променљива / вредност // таргет типе је тип у који желите претворити изворни тип, увек је одредишни тип.
Пример
Да разумемо са примером. Желите да претворите врсту података 'инт' у 'бите'. Сада, како је 'бајт' мањи од 'инт', претворба типа није дозвољена. Овде смо морали да имплицитно претворимо 'инт' у 'бите' користећи оператер за кастинг '()'. Пошто је „инт“ већи од „бајта“, величина „инт“ биће смањена на опсег „инт мод бите“.
инт а; бајт б; ... ... б = (бајт) а;
Кад се 'флоат' претвори у 'инт', величина флоат-а постаје скраћена, јер 'инт' не чува вриједност фракције. Ако је величина одредишног типа премала да би се изворни тип могао уклопити, тада је изворни модул одредишни тип „распон“. Кастинг се такође може применити када су типови података компатибилни. Добра пракса је да се користи ливење типа тамо где год је потребна конверзија типа.
Дефиниција претворбе типа
Конверзија типа је аутоматска конверзија једне врсте података у другу кад год то захтијева експлицитни превод. Али морају се испунити два услова пре конверзије типа.
- Изворни и одредишни тип морају бити компатибилни.
- Врста одредишта мора бити већа од врсте извора.
Ова два услова би требало да задовоље постизање претворбе типа, а ова врста конверзије се назива 'шири конверзија', јер се мањи тип претвара у већи тип, долази до ширења типа. За ову ширу конверзију, нумерички типови као 'инт', 'флоат' су компатибилни једни с другима, док нумерички то цхар и боолеан или цхар то боолеан такође нису компатибилни.
Пример
Овај пример ће пружити бољи поглед на то
инт а = 3; флоат б; б = а; // вредност у б = 3.000.
Овде се 'инт' претвара у 'флоат' који је већи од 'инт', па долази до ширења типа извора. Овде није потребан оператер кастинга јер ће преводилац то изричито учинити.
- Основна разлика која разликује пребацивање типа од претварања типа је тачно убацивање типа у конверзију једног типа у други, које врши програмер. С друге стране, претворба типа је конверзија једног типа у други, извршена од стране преводиоца током компилације.
- Уметање типова може се применити на типове података који можда нису компатибилни један са другим. Супротно томе, претворба типа може се применити само на типове података који су компатибилни једни са другима.
- Конверзија једног типа у други у типу преноса захтева оператора ливења „()“ док конверзија једног типа у други у претворби типа не захтева ниједног оператора.
- Приликом претварања једног типа података у други у кастингу типа, одредишни тип може бити већи или мањи од извора. Насупрот томе, тип одредишта мора бити већи од врсте извора у претворби типа.
- Конверзија једне врсте у другу врши се кодирањем у кастингу типа. Супротно томе, код претворбе типа претворба једног типа у други се изричито врши током компилације.
- Пребацивање типа назива се конверзија сужавања, јер овдје одредишни тип може бити мањи од извора. За разлику, претворба типа назива се проширива конверзија јер овдје одредишни тип мора бити већи од извора.
Закључак:
Може се закључити да претворба типа и кастинг типа извршавају задатак претварања једног типа података у други, али се разликују у смислу да кастинг типа врши програмер, користећи цаст оператор () ', а претворбу типа врши преводилац , и не користи ниједан оператор.