வகை வார்ப்பு மற்றும் வகை மாற்றத்திற்கு இடையிலான வேறுபாடு
உள்ளடக்கம்
வகை மாற்றம் மற்றும் வகை வார்ப்பு ஆகியவற்றுக்கு இடையேயான அடிப்படை வேறுபாடு, அதாவது வகை மாற்றம் தொகுப்பாளரால் “தானாகவே” செய்யப்படுகிறது, அதே சமயம் வகை வார்ப்பு என்பது புரோகிராமரால் “வெளிப்படையாக செய்யப்பட வேண்டும்”.
ஒரு தரவு வகையை மற்றொன்றுக்கு மாற்ற வேண்டிய அவசியம் இருக்கும்போது “வகை வார்ப்பு” மற்றும் “வகை மாற்றம்” ஆகிய இரண்டு சொற்கள் நிகழ்கின்றன. இரண்டு வகைகளும் ஒருவருக்கொருவர் இணக்கமாக இருக்கும்போது, ஒரு வகையை மற்றொன்றுக்கு மாற்றுவது தொகுப்பால் தானாகவே செய்யப்படுகிறது. ஒப்பீட்டு விளக்கப்படத்தின் உதவியுடன் வகை வார்ப்பு மற்றும் மாற்றம் ஆகிய இரண்டின் வித்தியாசத்தைப் பற்றி விவாதிக்கலாம்.
- ஒப்பீட்டு விளக்கப்படம்
- வரையறை
- முக்கிய வேறுபாடுகள்
- முடிவுரை
ஒப்பீட்டு விளக்கப்படம்:
ஒப்பீட்டுக்கான அடிப்படை | வார்ப்பு தட்டச்சு | மாற்றத்தை தட்டச்சு செய்க |
---|---|---|
பொருள் | ஒரு தரவு வகை பயனருக்கு மற்றொருவருக்கு ஒதுக்கப்படுகிறது, ஒரு வார்ப்பு ஆபரேட்டரைப் பயன்படுத்தி அது "வகை வார்ப்பு" என்று அழைக்கப்படுகிறது. | தொகுப்பாளரால் ஒரு தரவு வகையை தானாக மாற்றுவது "வகை மாற்றம்" என்று அழைக்கப்படுகிறது. |
பிரயோக | பொருந்தாத இரண்டு தரவு வகைகளுக்கும் வகை வார்ப்பு பயன்படுத்தப்படலாம். | இரண்டு தரவு வகைகள் இணக்கமாக இருக்கும்போது மட்டுமே வகை மாற்றத்தை செயல்படுத்த முடியும். |
ஆபரேட்டர் | தரவு வகையை இன்னொருவருக்கு அனுப்ப, ஒரு வார்ப்பு ஆபரேட்டர் () தேவை. | ஆபரேட்டர் தேவையில்லை. |
தரவு வகைகளின் அளவு | இலக்கு வகை மூல வகையை விட சிறியதாக இருக்கலாம். | இங்கே இலக்கு வகை மூல வகையை விட பெரியதாக இருக்க வேண்டும். |
செயல்படுத்தப்பட்ட | இது நிரல் வடிவமைப்பின் போது செய்யப்படுகிறது. | தொகுக்கும் போது இது வெளிப்படையாக செய்யப்படுகிறது. |
மாற்று வகை | சுருக்கமான மாற்றம். | மாற்றத்தை விரிவுபடுத்துதல். |
உதாரணமாக | int a; பைட் பி; ... ... b = (பைட்) அ; | int a = 3; மிதவை ஆ; ஆ = ஒரு; // மதிப்பு b = 3.000. |
வகை வார்ப்பு வரையறை
வார்ப்பு தட்டச்சு நிரல் வடிவமைப்பின் போது, புரோகிராமரால், ஒரு தரவு வகையை மற்றொரு தரவு வகைக்கு அனுப்புவது என வரையறுக்கலாம். ஒரு தரவு வகையை இன்னொருவருக்கு தானாக மாற்றுவது எல்லா நேரத்திலும் சாத்தியமில்லை. ‘இலக்கு வகை’ ‘மூல வகையை’ விட சிறியது என்ற நிபந்தனையாக இருக்கலாம். ஆகையால், புரோகிராமர் பெரிய தரவு வகையை வெளிப்படையாக சிறிய தரவு வகைக்கு வார்ப்பு ஆபரேட்டர் ‘()’ ஐப் பயன்படுத்தி அனுப்ப வேண்டும். பெரிய தரவு வகை சிறிய தரவு வகைக்கு மாற்றியமைக்கப்படுவதால், இது ‘குறுகலான மாற்றம்’ என்றும் அழைக்கப்படுகிறது.
தேச்லரதியன்:destination_type = (target_type) மாறி / மதிப்பு // இலக்கு வகை என்பது நீங்கள் மூல வகையை மாற்ற விரும்பும் ஒரு வகை, இது எப்போதும் இலக்கு வகையாகும்.
உதாரணமாக
அதை ஒரு எடுத்துக்காட்டுடன் புரிந்துகொள்வோம். தரவு வகையான ‘int’ ஐ ‘பைட்’ ஆக மாற்ற விரும்புகிறீர்கள். இப்போது, ‘பைட்’ ‘int’ ஐ விட சிறியதாக இருப்பதால், வகை மாற்றம் அனுமதிக்கப்படாது. இங்கே, காஸ்டிங் ஆபரேட்டர் ‘()’ ஐப் பயன்படுத்தி ‘இன்ட்’ ஐ மறைமுகமாக ‘பைட்’ ஆக மாற்ற வேண்டியிருந்தது. ‘Int’ என்பது ‘பைட்டை’ விட பெரியதாக இருப்பதால், ‘int’ இன் அளவு “int mod byte” வரம்பாகக் குறைக்கப்படும்.
int a; பைட் பி; ... ... பி = (பைட்) அ;
‘மிதவை’ ‘முழு எண்ணாக’ மாற்றப்படும்போது, மிதவை அளவு துண்டிக்கப்படுகிறது, ஏனெனில் ‘எண்ணாக’ பகுதியளவு மதிப்பை சேமிக்காது. இலக்கு வகையின் அளவு மூல வகைக்கு பொருந்தாத அளவுக்கு சிறியதாக இருந்தால், மூல வகை மட்டு இலக்கு வகை ‘வரம்பு’. தரவு வகைகள் இணக்கமாக இருக்கும்போது நடிப்பையும் பயன்படுத்தலாம். வகை மாற்றம் தேவைப்படும் இடங்களில் வகை வார்ப்பைப் பயன்படுத்துவது நல்ல நடைமுறை.
வகை மாற்றத்தின் வரையறை
மாற்றத்தை தட்டச்சு செய்க தேவைப்படும் போதெல்லாம் ஒரு தரவு வகையை இன்னொருவருக்கு தானாக மாற்றுவது, தொகுப்பாளரால் வெளிப்படையாக செய்யப்படுகிறது. ஆனால் வகை மாற்றத்திற்கு முன் திருப்தி செய்ய இரண்டு நிபந்தனைகள் உள்ளன.
- மூல மற்றும் இலக்கு வகை இணக்கமாக இருக்க வேண்டும்.
- இலக்கு வகை மூல வகையை விட பெரியதாக இருக்க வேண்டும்.
வகை மாற்றத்தை அடைய இந்த இரண்டு நிபந்தனைகளும் பூர்த்தி செய்யப்பட வேண்டும், மேலும் இந்த வகையான மாற்றத்தை ‘அகலப்படுத்தும் மாற்றம்’ என்று அழைக்கப்படுகிறது, ஏனெனில் ஒரு சிறிய வகை பெரிய வகையாக மாற்றப்படுவதால், வகையின் விரிவாக்கம் ஏற்படுகிறது. இந்த விரிவாக்கும் மாற்றத்திற்கு, ‘int’, ‘float’ போன்ற எண் வகைகள் ஒருவருக்கொருவர் இணக்கமாக உள்ளன, அதே சமயம் எரிப்பதை பூர் மற்றும் பூலியன் அல்லது கரி முதல் பூலியன் வரை பொருந்தாது.
உதாரணமாக
இந்த எடுத்துக்காட்டு இதைப் பற்றிய சிறந்த பார்வையை வழங்கும்
int a = 3; மிதவை ஆ; ஆ = ஒரு; // மதிப்பு b = 3.000.
இங்கே, ‘int’ என்பது ‘int’ ஐ விட பெரியதாக இருக்கும் ‘மிதவை’ ஆக மாற்றப்படுகிறது, எனவே மூல வகையின் விரிவாக்கம் நிகழ்கிறது. இங்கே, தொகுப்பாளர் அதை வெளிப்படையாகச் செய்வதால் எந்த வார்ப்பு ஆபரேட்டரும் தேவையில்லை.
- வகை மாற்றத்திலிருந்து வகை வார்ப்பை வேறுபடுத்துகின்ற அடிப்படை வேறுபாடு என்னவென்றால், வகை வார்ப்பு என்பது ஒரு வகையை மற்றொரு வகையாக மாற்றுவது, புரோகிராமரால் செய்யப்படுகிறது. மறுபுறம், வகை மாற்றம் என்பது ஒரு வகையை மற்றொரு வகையாக மாற்றுவது, தொகுக்கும்போது தொகுப்பால் செய்யப்படுகிறது.
- தரவு வகைகளுக்கு வகை வார்ப்பு பயன்படுத்தப்படலாம், அவை ஒருவருக்கொருவர் பொருந்தாது. மாறாக, வகை இணக்கம் ஒருவருக்கொருவர் பொருந்தக்கூடிய தரவு வகைகளுக்கு மட்டுமே பயன்படுத்தப்பட முடியும்.
- வகை வார்ப்பில் ஒரு வகையை மாற்றுவதற்கு வார்ப்பு ஆபரேட்டர் “()” தேவைப்படுகிறது, அதே நேரத்தில் வகை மாற்றத்தில் ஒரு தரவு வகையை மற்றொன்றுக்கு மாற்ற எந்த ஆபரேட்டரும் தேவையில்லை.
- வகை வார்ப்பில் ஒரு தரவு வகையை மற்றொன்றுக்கு மாற்றும் போது, இலக்கு வகை மூல வகையை விட பெரியதாகவோ அல்லது சிறியதாகவோ இருக்கலாம். எதிராக, இலக்கு வகை வகை மாற்றத்தில் மூல வகையை விட பெரியதாக இருக்க வேண்டும்.
- வகை வார்ப்பில் குறியிடும்போது ஒரு வகையை மற்றொரு வகையாக மாற்றுவது செய்யப்படுகிறது. இதற்கு மாறாக, வகை மாற்றத்தில், ஒரு வகையை மற்றொரு வகைக்கு மாற்றுவது தொகுப்பின் போது வெளிப்படையாக செய்யப்படுகிறது.
- வகை வார்ப்பு குறுகலான மாற்றம் என்று அழைக்கப்படுகிறது, ஏனெனில் இங்கு இலக்கு வகை மூல வகையை விட சிறியதாக இருக்கலாம். போலல்லாமல், வகை மாற்றத்தை விரிவுபடுத்தும் மாற்றம் என்று அழைக்கப்படுகிறது, ஏனெனில் இங்கே, இலக்கு வகை மூல வகையை விட பெரியதாக இருக்க வேண்டும்.
முடிவுரை:
வகை மாற்றம் மற்றும் வகை வார்ப்பு, இரண்டும் ஒரு தரவு வகையை மற்றொன்றுக்கு மாற்றும் பணியைச் செய்கின்றன, ஆனால் வகை வார்ப்பு புரோகிராமரால் செய்யப்படுகிறது, வார்ப்பு ஆபரேட்டரைப் பயன்படுத்தி () 'மற்றும் வகை மாற்றமானது தொகுப்பாளரால் செய்யப்படுகிறது , அது எந்த ஆபரேட்டரையும் பயன்படுத்தாது.