Разлика између лијевања типа и претворбе типа

Аутор: Laura McKinney
Датум Стварања: 1 Април 2021
Ажурирати Датум: 4 Може 2024
Anonim
СООБРАЗИМ НА ТРОИХ! ► 1 Кооперативный стрим Warhammer: Vermintide 2
Видео: СООБРАЗИМ НА ТРОИХ! ► 1 Кооперативный стрим Warhammer: Vermintide 2

Садржај


Основна разлика између претворбе типа и кастинга типа, тј. Претворба типа врши се „аутоматски“ од стране преводитеља, док програмер треба изричито извести.

Два термина „лијевање типа“ и „претворба типа“ настају када постоји потреба за претварањем једне врсте података у другу. Кад су две врсте компатибилне једна с другом, тада преводилац једне врсте у другу врши аутоматски компајлер. Разговарајмо о разлици уврштавања и конверзије типа уз помоћ упоредног графикона.

  1. Упоредни графикон
  2. Дефиниција
  3. Кључне разлике
  4. Закључак

Упоредни графикон:

Основе за упоређивањеТип ЦастингУнесите конверзију
ЗначењеКорисник један тип података додељује другом кориснику, користећи оператер цаст, а затим се назива "Цастинг Типе".Претварање једног типа података у други аутоматски од стране преводиоца назива се „Конверзија типа“.
ПримењеноПребацивање типа се такође може применити на две некомпатибилне врсте података.Конверзија типа може се провести само када су двије врсте података компатибилне.
ОператорЗа пребацивање врсте података на други, потребан је оператор за лијевање ().Није потребан оператер.
Величина типова податакаВрста одредишта може бити мања од врсте извора.Овде врста одредишта мора бити већа од врсте извора.
ИмплементираноИзводи се током дизајнирања програма.То се изричито врши при састављању.
Тип конверзије

Ужа конверзија.Проширење конверзије.
Примеринт а;
бајт б;
...
...
б = (бајт) а;
инт а = 3;
флоат б;
б = а; // вредност у б = 3.000.


Дефиниција типа ливења

Уливање типа може се дефинисати као, пребацивање једне врсте података у другу врсту података, од стране програмера, у време пројектовања програма. Аутоматска конверзија једне врсте података у другу није могућа стално. Може бити услов да је „одредишна врста” мања од „врсте извора”. Због тога, програмер мора да изричито повеће већи тип података на мањи тип података користећи оператора за кастинг '()'. Како се већи тип података модулира на мањи тип података, такођер се назива и "сужавање конверзије".

Изјава:

таргет_типе = (таргет_типе) променљива / вредност // таргет типе је тип у који желите претворити изворни тип, увек је одредишни тип.

Пример

Да разумемо са примером. Желите да претворите врсту података 'инт' у 'бите'. Сада, како је 'бајт' мањи од 'инт', претворба типа није дозвољена. Овде смо морали да имплицитно претворимо 'инт' у 'бите' користећи оператер за кастинг '()'. Пошто је „инт“ већи од „бајта“, величина „инт“ биће смањена на опсег „инт мод бите“.


инт а; бајт б; ... ... б = (бајт) а;

Кад се 'флоат' претвори у 'инт', величина флоат-а постаје скраћена, јер 'инт' не чува вриједност фракције. Ако је величина одредишног типа премала да би се изворни тип могао уклопити, тада је изворни модул одредишни тип „распон“. Кастинг се такође може применити када су типови података компатибилни. Добра пракса је да се користи ливење типа тамо где год је потребна конверзија типа.

Дефиниција претворбе типа

Конверзија типа је аутоматска конверзија једне врсте података у другу кад год то захтијева експлицитни превод. Али морају се испунити два услова пре конверзије типа.

  • Изворни и одредишни тип морају бити компатибилни.
  • Врста одредишта мора бити већа од врсте извора.

Ова два услова би требало да задовоље постизање претворбе типа, а ова врста конверзије се назива 'шири конверзија', јер се мањи тип претвара у већи тип, долази до ширења типа. За ову ширу конверзију, нумерички типови као 'инт', 'флоат' су компатибилни једни с другима, док нумерички то цхар и боолеан или цхар то боолеан такође нису компатибилни.

Пример

Овај пример ће пружити бољи поглед на то

инт а = 3; флоат б; б = а; // вредност у б = 3.000.

Овде се 'инт' претвара у 'флоат' који је већи од 'инт', па долази до ширења типа извора. Овде није потребан оператер кастинга јер ће преводилац то изричито учинити.

  1. Основна разлика која разликује пребацивање типа од претварања типа је тачно убацивање типа у конверзију једног типа у други, које врши програмер. С друге стране, претворба типа је конверзија једног типа у други, извршена од стране преводиоца током компилације.
  2. Уметање типова може се применити на типове података који можда нису компатибилни један са другим. Супротно томе, претворба типа може се применити само на типове података који су компатибилни једни са другима.
  3. Конверзија једног типа у други у типу преноса захтева оператора ливења „()“ док конверзија једног типа у други у претворби типа не захтева ниједног оператора.
  4. Приликом претварања једног типа података у други у кастингу типа, одредишни тип може бити већи или мањи од извора. Насупрот томе, тип одредишта мора бити већи од врсте извора у претворби типа.
  5. Конверзија једне врсте у другу врши се кодирањем у кастингу типа. Супротно томе, код претворбе типа претворба једног типа у други се изричито врши током компилације.
  6. Пребацивање типа назива се конверзија сужавања, јер овдје одредишни тип може бити мањи од извора. За разлику, претворба типа назива се проширива конверзија јер овдје одредишни тип мора бити већи од извора.

Закључак:

Може се закључити да претворба типа и кастинг типа извршавају задатак претварања једног типа података у други, али се разликују у смислу да кастинг типа врши програмер, користећи цаст оператор () ', а претворбу типа врши преводилац , и не користи ниједан оператор.