Type conversion
કોમ્પ્યુટર વિજ્ઞાનમાં, ટાઇપ કન્વર્ઝન, ટાઇપ કાસ્ટિંગ, ટાઇપ જબરદસ્તી અને ટાઇપ જગલિંગ એ અભિવ્યક્તિને એક ડેટા પ્રકારમાંથી બીજામાં બદલવાની વિવિધ રીતો છે. એક ઉદાહરણ પૂર્ણાંક મૂલ્યનું ફ્લોટિંગ પોઇન્ટ મૂલ્યમાં રૂપાંતર અથવા સ્ટ્રિંગ તરીકે તેની લખાણની રજૂઆત હશે, અને તેનાથી ઊલટું. પ્રકાર રૂપાંતરણો પ્રકાર પદાનુક્રમ અથવા ડેટા રજૂઆતોની ચોક્કસ સુવિધાઓનો લાભ લઈ શકે છે. પ્રકાર રૂપાંતરણના બે મહત્વપૂર્ણ પાસાઓ એ છે કે શું તે પરોક્ષ રીતે (આપમેળે) અથવા સ્પષ્ટ રીતે થાય છે, અને શું અંતર્ગત ડેટા પ્રતિનિધિત્વને એક પ્રતિનિધિત્વમાંથી બીજામાં રૂપાંતરિત કરવામાં આવે છે, અથવા આપેલ પ્રતિનિધિત્વને માત્ર અન્ય ડેટા પ્રકારનાં પ્રતિનિધિત્વ તરીકે પુનઃવ્યાખ્યાયિત કરવામાં આવે છે. સામાન્ય રીતે, બંને આદિમ અને સંયોજન ડેટા પ્રકારોને રૂપાંતરિત કરી શકાય છે. પ્રકારોને કેવી રીતે રૂપાંતરિત કરી શકાય તેના પર દરેક પ્રોગ્રામિંગ ભાષાના પોતાના નિયમો હોય છે. મજબૂત ટાઇપિંગ ધરાવતી ભાષાઓ સામાન્ય રીતે થોડું ગર્ભિત રૂપાંતરણ કરે છે અને રજૂઆતોના પુનઃઅર્થઘટનને નિરુત્સાહિત કરે છે, જ્યારે નબળા ટાઇપિંગ ધરાવતી ભાષાઓ ડેટા પ્રકારો વચ્ચે ઘણા ગર્ભિત રૂપાંતરણો કરે છે. નબળી ટાઇપિંગ ભાષા ઘણીવાર કમ્પાઇલરને ડેટા આઇટમને મનસ્વી રીતે અર્થઘટન કરવા માટે દબાણ કરવાની મંજૂરી આપે છે જેમાં વિવિધ રજૂઆતો હોય છે-આ એક બિન-સ્પષ્ટ પ્રોગ્રામિંગ ભૂલ હોઈ શકે છે, અથવા અંતર્ગત હાર્ડવેર સાથે સીધો વ્યવહાર કરવાની તકનીકી પદ્ધતિ હોઈ શકે છે. મોટાભાગની ભાષાઓમાં, જબરદસ્તી શબ્દનો ઉપયોગ સંકલન દરમિયાન અથવા રન ટાઇમ દરમિયાન ગર્ભિત રૂપાંતરણને દર્શાવવા માટે થાય છે. ઉદાહરણ તરીકે, પૂર્ણાંક અને ફ્લોટિંગ પોઇન્ટ નંબરોના મિશ્રણની અભિવ્યક્તિમાં (જેમ કે 5 + 0.1), કમ્પાઇલર આપમેળે પૂર્ણાંક રજૂઆતને ફ્લોટિંગ પોઇન્ટ રજૂઆતમાં રૂપાંતરિત કરશે જેથી અપૂર્ણાંકો ખોવાઈ ન જાય. સ્પષ્ટ પ્રકારનાં રૂપાંતરણો કાં તો વધારાના કોડ લખીને સૂચવવામાં આવે છે (દા. ત. પ્રકાર ઓળખકર્તાઓ ઉમેરવા અથવા બિલ્ટ-ઇન દિનચર્યાઓને કૉલ કરવા) અથવા કમ્પાઇલર માટે રૂપાંતર દિનચર્યાઓને કોડિંગ કરીને જ્યારે તે અન્યથા પ્રકાર મેળ ખાતો ન હોય ત્યારે તેનો ઉપયોગ કરે છે. પાસ્કલ, મોડ્યુલા-2, અદા અને ડેલ્ફી જેવી મોટાભાગની ALGOL જેવી ભાષાઓમાં રૂપાંતર અને કાસ્ટિંગ સ્પષ્ટ રીતે અલગ વિભાવનાઓ છે. આ ભાષાઓમાં, રૂપાંતરણ એ એક ડેટા પ્રકાર સંગ્રહ સ્વરૂપમાંથી બીજામાં મૂલ્યને પરોક્ષ રીતે અથવા સ્પષ્ટ રીતે બદલવાનો સંદર્ભ આપે છે, દા. ત. 32-બીટ પૂર્ણાંક માટે 16-બીટ પૂર્ણાંક. રૂપાંતરના પરિણામે સંગ્રહની જરૂરિયાતો બદલાઈ શકે છે, જેમાં ચોકસાઇ અથવા કાપણીની સંભવિત ખોટનો સમાવેશ થાય છે. બીજી બાજુ, કાસ્ટ શબ્દ, એક પ્રકારથી બીજા પ્રકારમાં મૂલ્યનું પ્રતિનિધિત્વ કરતી બીટ પેટર્નના અર્થઘટનને સ્પષ્ટપણે બદલવાનો સંદર્ભ આપે છે. ઉદાહરણ તરીકે, 32 સંલગ્ન બિટ્સને 32 બુલિયન, 4-બાઈટ સ્ટ્રિંગ, સહી વગરના 32-બીટ પૂર્ણાંક અથવા IEEE સિંગલ પ્રિસિઝન ફ્લોટિંગ પોઇન્ટ વેલ્યુ તરીકે ગણી શકાય. કારણ કે સંગ્રહિત બિટ્સ ક્યારેય બદલાતા નથી, પ્રોગ્રામરે અર્થપૂર્ણ રીતે કાસ્ટ કરવા માટે પ્રતિનિધિત્વ બંધારણ, બાઈટ ક્રમ અને સંરેખણ જરૂરિયાતો જેવી નિમ્ન સ્તરની વિગતો જાણવી આવશ્યક છે. ભાષાઓના સી પરિવાર અને ALGOL 68 માં, કાસ્ટ શબ્દ સામાન્ય રીતે સ્પષ્ટ પ્રકારનાં રૂપાંતરણનો સંદર્ભ આપે છે (ગર્ભિત રૂપાંતરણના વિરોધમાં), જે આ બીટ-પેટર્નનું પુનઃઅર્થઘટન છે કે વાસ્તવિક ડેટા પ્રતિનિધિત્વ રૂપાંતરણ છે તે અંગે થોડી અસ્પષ્ટતા પેદા કરે છે. પોઇન્ટર દ્વારા કયા ડેટા પ્રકાર (અથવા વર્ગ) સ્થિત છે અને ઓબ્જેક્ટ (વર્ગ) વારસો જેવા કિસ્સાઓમાં કમ્પાઇલર દ્વારા પોઇન્ટરને કેવી રીતે સમાયોજિત કરી શકાય છે તેના પર લાગુ થતી ઘણી રીતો અને નિયમો વધુ મહત્વપૂર્ણ છે. વિવિધ ભાષાઓમાં સ્પષ્ટ કાસ્ટિંગ એ. ડી. એ. એ. ડી. એ. એ. ડી. એ. ડી. એ. ડી. એ. ડી. એ. ડી. એ. ડી. એ. ડી. એ. ડી. એ. ડી. એ. ડી. એ. ડી. એ. ડી. એ. ડી. એ. ડી. એ. ડી. એ. ડી. એ. ડી. એ. ડી. એ. ડી. એ. ડી. એ. ડી. એ. ડી. એ. ડી. એ. ડી. એ. ડી. એ. એ. ડી. એ. ડી. એ. એ. ડી. એ. ડી. એ. એ. ડી. એ. એ. ડી. એ. એ. ડી. એ. એ. ડી. એ. એ. ડી. એ. એ. ડી. એ. એ. ડી. એ. એ. ડી. એ. એ. ડી. એ. એ. ડી. એ. સી જેવી ભાષાઓ ઇમ્પ્લિસિટ પ્રકારનું રૂપાંતરણ ઇમ્પ્લિસિટ પ્રકારનું રૂપાંતરણ, જેને જબરદસ્તી અથવા પ્રકાર જગલિંગ તરીકે પણ ઓળખવામાં આવે છે, તે કમ્પાઇલર દ્વારા સ્વચાલિત પ્રકારનું રૂપાંતરણ છે. કેટલીક પ્રોગ્રામિંગ ભાષાઓ કમ્પાઇલર્સને બળજબરી પ્રદાન કરવાની મંજૂરી આપે છે; અન્યને તેની જરૂર છે. મિશ્ર-પ્રકાર અભિવ્યક્તિમાં, એક અથવા વધુ પેટા પ્રકારોના ડેટાને રનટાઇમ પર જરૂરિયાત મુજબ સુપરટાઇપમાં રૂપાંતરિત કરી શકાય છે જેથી પ્રોગ્રામ યોગ્ય રીતે ચાલશે. ઉદાહરણ તરીકે, નીચેનો કાનૂની સી લેંગ્વેજ કોડ છેઃ ડબલ ડી; લોંગ એલ; ઇન્ટ આઈ; જો (ડી> આઈ) ડી = આઈ; જો (આઈ> એલ) એલ = આઈ; જો (ડી = = એલ) ડી * = 2; જો કે, અને વિવિધ ડેટા પ્રકારો સાથે સંબંધિત હોય, તો જ્યારે પણ સરખામણી અથવા સોંપણી ચલાવવામાં આવે ત્યારે તેઓ આપમેળે સમાન ડેટા પ્રકારોમાં રૂપાંતરિત થઈ જશે. આ વર્તણૂકનો ઉપયોગ સાવધાની સાથે થવો જોઈએ, કારણ કે અનિચ્છનીય પરિણામો આવી શકે છે. ફ્લોટિંગ-પોઇન્ટથી પૂર્ણાંકમાં રજૂઆતોને રૂપાંતરિત કરતી વખતે માહિતી ખોવાઈ શકે છે, કારણ કે ફ્લોટિંગ-પોઇન્ટ મૂલ્યોના અપૂર્ણાંક ઘટકોને કાપી નાખવામાં આવશે (શૂન્ય તરફ ગોળાકાર). તેનાથી વિપરીત, પૂર્ણાંકમાંથી ફ્લોટિંગ-પોઇન્ટમાં રજૂઆતોને રૂપાંતરિત કરતી વખતે ચોકસાઈ ગુમાવી શકાય છે, કારણ કે ફ્લોટિંગ-પોઇન્ટ પ્રકાર અમુક પૂર્ણાંક પ્રકારનાં તમામ સંભવિત મૂલ્યોને બરાબર રજૂ કરવામાં અસમર્થ હોઈ શકે છે. ઉદાહરણ તરીકે, IEEE 754 સિંગલ પ્રિસિઝન પ્રકાર હોઈ શકે છે, જે પૂર્ણાંક 16777217 ને બરાબર રજૂ કરી શકતો નથી, જ્યારે 32-બીટ પૂર્ણાંક પ્રકાર કરી શકે છે. આ બિનઅનુભવી વર્તણૂક તરફ દોરી શકે છે, જેમ કે નીચેના કોડ દ્વારા દર્શાવવામાં આવ્યું છેઃ #include <stdio.h> પૂર્ણાંક મુખ્ય (રદબાતલ) {પૂર્ણાંક i _ મૂલ્ય = 16777217; ફ્લોટ f _ મૂલ્ય = 16777216.0; પ્રિન્ટએફ ("પૂર્ણાંક છેઃ% d\n", i _ મૂલ્ય); પ્રિન્ટએફ ("ફ્લોટ છેઃ% f\n", f _ મૂલ્ય); પ્રિન્ટએફ ("તેમની સમાનતાઃ% d\n", i _ મૂલ્ય = = f _ મૂલ્ય);} એવા કમ્પાઇલર્સ પર કે જે ફ્લોટ્સને IEEE એક ચોકસાઇ તરીકે અમલમાં મૂકે છે, અને ઓછામાં ઓછા 32 બિટ્સ તરીકે પૂર્ણાંક, આ કોડ આ વિશિષ્ટ પ્રિન્ટ-આઉટ આપશેઃ આ વિચિત્ર વર્તન જ્યારે તેની સાથે સરખામણી કરવામાં આવે ત્યારે ફ્લોટમાં ગર્ભિત રૂપાંતરને કારણે થાય છે. રૂપાંતર ચોકસાઇ ગુમાવવાનું કારણ બને છે, જે સરખામણી પહેલાં મૂલ્યોને સમાન બનાવે છે. મહત્વપૂર્ણ ઉપાયોઃ કાપણીનું કારણ બને છે, એટલે કે, અપૂર્ણાંક ભાગને દૂર કરવો. અંકને ગોળાકાર કરવાનું કારણ બને છે. વધુ પડતા ઉચ્ચ ક્રમના બિટ્સના ઘટાડાનું કારણ બને છે. ટાઇપ પ્રમોશન ઇમ્પ્લિસિટ ટાઇપ કન્વર્ઝનનો એક ખાસ કેસ ટાઇપ પ્રમોશન છે, જ્યાં ઑબ્જેક્ટ આપમેળે મૂળ પ્રકારનાં સુપરસેટનું પ્રતિનિધિત્વ કરતા અન્ય ડેટા પ્રકારમાં રૂપાંતરિત થાય છે. પ્રચારનો ઉપયોગ સામાન્ય રીતે લક્ષ્ય મંચના અંકગણિત તર્ક એકમ (એ. એલ. યુ.) ના મૂળ પ્રકાર કરતાં નાના પ્રકારો સાથે, અંકગણિત અને તાર્કિક કામગીરી પહેલાં, આવી કામગીરીને શક્ય બનાવવા માટે, અથવા જો એ. એલ. યુ. એકથી વધુ પ્રકાર સાથે કામ કરી શકે તો વધુ કાર્યક્ષમ રીતે થાય છે. સી અને સી + + બુલિયન, અક્ષર, વિશાળ અક્ષર, ગણતરી અને ટૂંકા પૂર્ણાંક પ્રકારોના પદાર્થો માટે આવા પ્રમોશન કરે છે, જેને ઇન્ટમાં પ્રમોટ કરવામાં આવે છે, અને ફ્લોટ પ્રકારનાં પદાર્થો માટે, જેને ડબલમાં પ્રમોટ કરવામાં આવે છે. કેટલાક અન્ય પ્રકારનાં રૂપાંતરણોથી વિપરીત, પ્રચારો ક્યારેય ચોકસાઇ ગુમાવતા નથી અથવા ઑબ્જેક્ટમાં સંગ્રહિત મૂલ્યમાં ફેરફાર કરતા નથી. જાવામાંઃ int x = 3; ડબલ y = 3.5; System.out.println (x + y);// આઉટપુટ 6.5 સ્પષ્ટ પ્રકારનું રૂપાંતરણ હશે સ્પષ્ટ પ્રકારનું રૂપાંતરણ, જેને ટાઇપ કાસ્ટિંગ પણ કહેવાય છે, તે એક પ્રકારનું રૂપાંતરણ છે જે પ્રોગ્રામની અંદર સ્પષ્ટ રીતે વ્યાખ્યાયિત કરવામાં આવે છે (ગર્ભિત પ્રકાર રૂપાંતરણ માટે ભાષાના નિયમો અનુસાર આપમેળે કરવાને બદલે). તે પ્રોગ્રામમાં વપરાશકર્તા દ્વારા વિનંતી કરવામાં આવે છે. ડબલ ડી. એ. = 3.3; ડબલ ડી. બી. = 3.3; ડબલ ડી. સી. = 3.4; પૂર્ણાંક પરિણામ = (પૂર્ણાંક) ડી. એ. + (પૂર્ણાંક) ડી. બી. + (પૂર્ણાંક) ડી. સી.;// પરિણામ = = 9// જો ગર્ભિત રૂપાંતરણનો ઉપયોગ કરવામાં આવશે (જેમ કે "પરિણામ = ડી. એ. + ડી. બી. + ડી. સી"), પરિણામ 10 ની બરાબર હશે. રૂપાંતર કરવામાં આવે તે પહેલાં ચકાસાયેલ, ગંતવ્ય પ્રકાર સ્રોત મૂલ્યને પકડી શકે છે કે કેમ તે જોવા માટે રનટાઇમ તપાસ કરવામાં આવે છે. જો નહીં, તો ભૂલની સ્થિતિ ઉભી કરવામાં આવે છે. અનચેક કરેલ કોઈ તપાસ કરવામાં આવતી નથી. જો ગંતવ્ય પ્રકાર સ્રોત મૂલ્યને પકડી શકતો નથી, તો પરિણામ અવ્યાખ્યાયિત છે. બીટ પેટર્ન સ્ત્રોતની કાચી બીટ રજૂઆત શબ્દશઃ નકલ કરવામાં આવે છે, અને તે ગંતવ્ય પ્રકાર અનુસાર ફરીથી અર્થઘટન કરવામાં આવે છે. આ અલિયાસિંગ દ્વારા પણ પ્રાપ્ત કરી શકાય છે. ઓબ્જેક્ટ-ઓરિએન્ટેડ પ્રોગ્રામિંગ ભાષાઓમાં, ઓબ્જેક્ટ્સને ડાઉનકાસ્ટ પણ કરી શકાય છેઃ બેઝ ક્લાસનો સંદર્ભ તેના વ્યુત્પન્ન વર્ગોમાંથી એકમાં નાખવામાં આવે છે. સી #અને સી + + સી #માં, પ્રકારનું રૂપાંતર સલામત અથવા અસુરક્ષિત (એટલે કે, સી-જેવું) રીતે કરી શકાય છે, જેને ચેક કરેલ ટાઇપ કાસ્ટ કહેવાય છે. પ્રાણી પ્રાણી = નવી બિલાડી (); બુલડોગ બી = (બુલડોગ) પ્રાણી;// જો (પ્રાણી બુલડોગ છે), stat.type (પ્રાણી) બુલડોગ છે, તો બી = બુલડોગ તરીકે પ્રાણી;// જો (પ્રાણી બુલડોગ છે), બી = (બુલડોગ) પ્રાણી, અન્યથા બી = નલ પ્રાણી = નલ; બી = બુલડોગ તરીકે પ્રાણી;// બી = = નલ C + + માં સમાન અસર C + +-શૈલી કાસ્ટ વાક્યરચનાનો ઉપયોગ કરીને પ્રાપ્ત કરી શકાય છે. એનિમલ * એનિમલ = નવી બિલાડી; બુલડોગ * બી = સ્ટેટિક _ કાસ્ટ <બુલડોગ *> (એનિમલ);// ત્યારે જ સંકલન કરે છે જ્યારે એનિમલ અથવા બુલડોગ અન્ય (અથવા સમાન) બી = ડાયનેમિક _ કાસ્ટ <બુલડોગ *> (એનિમલ);// જો (એનિમલ બુલડોગ છે), બી = (બુલડોગ) એનિમલ, અન્યથા બી = નલપ્ટ્ર બુલડોગ & બીઆર = સ્ટેટિક _ કાસ્ટ <બુલડોગ &> (એનિમલ);// ઉપરની જેમ જ, પરંતુ જો નલપ્ટ્ર પરત કરવામાં આવે તો એક અપવાદ ફેંકવામાં આવશે// આ કોડમાં જોવા મળતો નથી જ્યાં અપવાદ હેન્ડલિંગ પ્રાણીને કાઢી નાખવાનું ટાળવામાં આવે છે;// હંમેશા મફત સંસાધનો એનિમલ = નલપ્ટ્ર; બી = ડાયનેમિક _ કાસ્ટ <બુલડોગ સોંપણી નિયમ કહે છે કે સોંપણી, જેમ કેઃ x: = y માન્ય છે જો અને માત્ર ત્યારે જ જો તેના સ્રોત અભિવ્યક્તિનો પ્રકાર, આ કિસ્સામાં y, તેના લક્ષ્ય અસ્તિત્વના પ્રકાર સાથે સુસંગત હોય, તો આ કિસ્સામાં x. આ નિયમમાં, સુસંગતતાનો અર્થ એ છે કે સ્રોત અભિવ્યક્તિનો પ્રકાર કાં તો લક્ષ્યને અનુરૂપ અથવા રૂપાંતરિત થાય છે. ઓબ્જેક્ટ-ઓરિએન્ટેડ પ્રોગ્રામિંગમાં બહુરૂપતા માટેના પરિચિત નિયમો દ્વારા પ્રકારોની સુસંગતતાને વ્યાખ્યાયિત કરવામાં આવે છે. ઉદાહરણ તરીકે, ઉપરની સોંપણીમાં, y નો પ્રકાર x ના પ્રકારને અનુરૂપ છે જો જે વર્ગ પર y આધારિત છે તે x આધારિત છે તેના વંશજ છે. એફિલમાં પ્રકાર પરિવર્તનની વ્યાખ્યા એફિલમાં પ્રકાર પરિવર્તનની ક્રિયાઓ, ખાસ કરીને રૂપાંતરિત થાય છે અને તેમાંથી રૂપાંતરિત થાય છે તેને આ રીતે વ્યાખ્યાયિત કરવામાં આવે છેઃ વર્ગ સી. યુ. પર આધારિત પ્રકાર વર્ગ સી. ટી. પર આધારિત પ્રકાર ટી. માં રૂપાંતરિત થાય છે (અને ટી. યુ. માંથી રૂપાંતરિત થાય છે) જો સી. ટી. માં યુ. નો રૂપાંતર પ્રકાર તરીકે ઉપયોગ કરીને રૂપાંતર પ્રક્રિયા હોય, અથવા સી. યુ. માં રૂપાંતરણ ક્વેરી લિસ્ટિંગ ટી હોય તો ઉદાહરણ એફિલ માઇક્રોસોફ્ટ. નેટ ફ્રેમવર્ક માટે સંપૂર્ણપણે સુસંગત ભાષા છે. ડોટ નેટના વિકાસ પહેલાં, એફિલ પાસે પહેલેથી જ વ્યાપક વર્ગ પુસ્તકાલયો હતા. . NET પ્રકારની લાઈબ્રેરીઓનો ઉપયોગ કરવો, ખાસ કરીને સામાન્ય રીતે ઉપયોગમાં લેવાતા પ્રકારો જેમ કે શબ્દમાળાઓ સાથે, રૂપાંતરની સમસ્યા ઊભી કરે છે. હાલનું એફિલ સોફ્ટવેર એફિલ લાઈબ્રેરીઓમાંથી સ્ટ્રિંગ વર્ગો (જેમ કે STRING _ 8) નો ઉપયોગ કરે છે, પરંતુ. NET માટે લખાયેલા એફિલ સોફ્ટવેરમાં ઘણા કિસ્સાઓમાં. NET સ્ટ્રિંગ વર્ગ (System.String) નો ઉપયોગ કરવો આવશ્યક છે, ઉદાહરણ તરીકે. NET પદ્ધતિઓ કે જે. NET પ્રકારની વસ્તુઓને દલીલો તરીકે પસાર થવાની અપેક્ષા રાખે છે. તેથી, આ પ્રકારોનું આગળ અને પાછળનું રૂપાંતરણ શક્ય તેટલું અવિરત હોવું જરૂરી છે. માય _ સ્ટ્રિંગઃ સ્ટ્રિંગ _ 8-- નેટિવ એફિલ સ્ટ્રિંગ માય _ સિસ્ટમ _ સ્ટ્રિંગઃ સિસ્ટમ _ સ્ટ્રિંગ-- નેટિવ. નેટ સ્ટ્રિંગ. માય _ સ્ટ્રિંગઃ = માય _ સિસ્ટમ _ સ્ટ્રિંગ ઉપરના કોડમાં, બે સ્ટ્રિંગ જાહેર કરવામાં આવે છે, દરેક અલગ અલગ પ્રકારમાંથી એક (સિસ્ટમ _ સ્ટ્રિંગ એ System.String માટે એફિલ સુસંગત ઉપનામ છે). કારણ કે System.String એ STRING _ 8 ને અનુરૂપ નથી, તો પછી ઉપરની સોંપણી માત્ર ત્યારે જ માન્ય છે જો System.String એ STRING _ 8 માં રૂપાંતરિત થાય. એફિલ વર્ગ STRNG _ 8 માં System.String પ્રકારનાં પદાર્થો માટે મેક _ ફ્રોમ _ સિલ રૂપાંતર પ્રક્રિયા છે. રૂપાંતર પ્રક્રિયાઓને પણ હંમેશા સર્જન પ્રક્રિયાઓ (કન્સ્ટ્રકટરોની જેમ) તરીકે નિયુક્ત કરવામાં આવે છે. નીચે STRING _ 8 વર્ગનો એક ટૂંકસાર છેઃ વર્ગ STRING _ 8. બનાવો મેક ફ્રોમ સિલ. કન્વર્ટ કરો મેક ફ્રોમ સિલ ({SYSTEM _ STRING}). રૂપાંતર પ્રક્રિયાની હાજરી સોંપણી બનાવે છેઃ માય _ સ્ટ્રિંગઃ = માય _ સિસ્ટમ _ સ્ટ્રિંગ અર્થપૂર્ણ રીતે સમાન છેઃ ક્રિએટ my_string.make_from_cil (માય _ સિસ્ટમ _ સ્ટ્રિંગ) જેમાં માય _ સ્ટ્રિંગને મારા _ સિસ્ટમ _ સ્ટ્રિંગની સમકક્ષ સામગ્રી સાથે STRING _ 8 પ્રકારનાં નવા ઓબ્જેક્ટ તરીકે બનાવવામાં આવી છે. મૂળ સ્રોત અને લક્ષ્ય સાથે અસાઇનમેન્ટને હેન્ડલ કરવા માટે રિવર્સઃ માય _ સિસ્ટમ _ સ્ટ્રિંગઃ = માય _ સ્ટ્રિંગ વર્ગ STRING _ 8 માં પણ _ cil માં રૂપાંતર ક્વેરી છે જે STRING _ 8 ના ઉદાહરણમાંથી System.String ઉત્પન્ન કરશે. વર્ગ સ્ટ્રેંગ _ 8. મેક _ ફ્રોમ _ સિલ બનાવો. મેક _ ફ્રોમ _ સિલ ({સિસ્ટમ _ સ્ટ્રેંગ}) ને _ સિલઃ {સિસ્ટમ _ સ્ટ્રેંગ} માં રૂપાંતરિત કરો. અસાઇનમેન્ટઃ માય _ સિસ્ટમ _ સ્ટ્રિંગઃ = માય _ સ્ટ્રિંગ પછી, આની સમકક્ષ બને છેઃ માય _ સિસ્ટમ _ સ્ટ્રિંગઃ = my_string.to_cil એફિલમાં, પ્રકાર રૂપાંતર માટેનું સેટઅપ વર્ગ કોડમાં શામેલ છે, પરંતુ તે પછી ક્લાયન્ટ કોડમાં સ્પષ્ટ પ્રકાર રૂપાંતર તરીકે આપમેળે થતું દેખાય છે. તેમાં માત્ર સોંપણીઓ જ નહીં પરંતુ અન્ય પ્રકારના જોડાણો પણ શામેલ છે, જેમ કે દલીલ (પરિમાણ) અવેજી. રસ્ટ રસ્ટ આદિમ પ્રકારો વચ્ચે કોઈ ગર્ભિત પ્રકારનું રૂપાંતર (બળજબરી) પ્રદાન કરતું નથી. પરંતુ, સ્પષ્ટ પ્રકારનું રૂપાંતરણ (કાસ્ટિંગ) તરીકે મુખ્ય શબ્દનો ઉપયોગ કરીને કરી શકાય છે. ચાલો x = 1000; પ્રિન્ટએલએન! ("1000 એ યુ16 તરીકે છેઃ {}", x એ યુ16 તરીકે); અનટેગ કરેલ યુનિયનનો ઉપયોગ કરીને ઇમ્પ્લિસિટ કાસ્ટિંગ ઘણી પ્રોગ્રામિંગ ભાષાઓ યુનિયન પ્રકારોને સપોર્ટ કરે છે જે બહુવિધ પ્રકારોનું મૂલ્ય ધરાવી શકે છે. અનટેગ કરેલ યુનિયનો કેટલીક ભાષાઓમાં છૂટક ટાઇપ-ચેકિંગ સાથે પ્રદાન કરવામાં આવે છે, જેમ કે સી અને પીએલ/આઈ, પણ મૂળ પાસ્કલમાં પણ. આનો ઉપયોગ એક પ્રકારની બીટ પેટર્નને બીજા પ્રકારની કિંમત તરીકે અર્થઘટન કરવા માટે થઈ શકે છે. સુરક્ષા મુદ્દાઓ હેકિંગમાં, ટાઇપકાસ્ટિંગ એ વેરિયેબલના ડેટા પ્રકારને અસ્થાયી રૂપે બદલવા માટે પ્રકાર રૂપાંતરણનો દુરુપયોગ છે જે તેને મૂળ રીતે વ્યાખ્યાયિત કરવામાં આવ્યો હતો. આ હેકરો માટે તકો પૂરી પાડે છે કારણ કે પ્રકાર રૂપાંતરણમાં ચલ પછી "ટાઇપકાસ્ટ" એક અલગ ડેટા પ્રકાર બની જાય છે, કમ્પાઇલર તે હેક કરેલા ચલને તે ચોક્કસ કામગીરી માટે નવા ડેટા પ્રકાર તરીકે ગણશે. આ પણ જુઓ ડાઉનકાસ્ટિંગ પ્રકાર પન્નિંગ સંદર્ભો બાહ્ય કડીઓ કાસ્ટિંગ ઇન અદા કાસ્ટિંગ ઇન C + + C + + સંદર્ભ માર્ગદર્શિકા હું C + + કાસ્ટ ઓપરેટરોને કેમ ધિક્કારું છું, ડેની કાલેવ દ્વારા જાવામાં કાસ્ટિંગ C #ઇમ્પ્લિસિટ પ્રકાર કાસ્ટિંગ પર Cppreference.com સ્ટેટિક અને રીઇન્ટરપ્રિટેશન કાસ્ટિંગમાં C + + અપકાસ્ટિંગ અને F #ડેટા પ્રકારોમાં ડાઉનકાસ્ટિંગ ઓપરેટર્સ (પ્રોગ્રામિંગ) પ્રકાર સિદ્ધાંત અનરી ઓપરેશન્સ