Mis on tüübi teisendamine?

Tüübikonversioon on tüübimärgistamise vorm, arvutiteaduses ja arvutitarkvara programmeerimises kasutatav tehnika, mille puhul konkreetse olemi andmetüüp muudetakse erinevaks andmetüübiks. Tüübimärgistamise kontseptsioon hakkas töötama ümber programmeerimiskeele määratletud tüübisüsteemi, nii et on võimalik saavutada teatud efekte, mida muidu oleks programmeerimiskeele formaalse definitsiooni piires raske teha. Tüüpide teisendamine, mis on kõige levinum tüübitähendamise vorm, on võimalik peaaegu kõigis programmeerimiskeeltes, kuigi mõned keeled pakuvad ka täiendavaid tüübimärgistamise meetodeid, nagu liitmine või ümbertõlgendamine. Mõned programmeerimisstiili juhendid soovitavad hoiduda tüübist, kuigi tüübiteisendust kasutatakse niikuinii sageli.

Sõltuvalt kasutatavast programmeerimiskeelest nimetatakse mõnikord ka tüübiteisendust või sundimist. Igal programmeerimiskeelel on reeglid, kuidas tüübiteisendust saab edukalt kasutada. Üldiselt võivad teisendused toimuda nii põhitüüpidel kui ka objektidel.

Põhilisi andmetüüpe või andmetüüpide klasse on mitu. Üks levinumaid matemaatilistes operatsioonides kasutatavaid andmetüüpe on täisarvud või tavalised numbrid, mis võivad ulatuda tuhandetesse või miljonitesse, olenevalt bittide arvust nende laiuses. Näiteks võib 32-bitine täisarv olla vahemikus null kuni 4,294,967,295 2,147,483,648 2,147,483,648 XNUMX või -XNUMX XNUMX XNUMX XNUMX kuni XNUMX XNUMX XNUMX XNUMX. Teine tüüp on ujukomaarv, mis on põhimõtteliselt mis tahes komaga arv.

Andmetüübina saab kasutada ka üksikuid märke, nagu tähestiku täht või kirjavahemärk. Stringi andmetüüp on mis tahes arvude ja/või tähtede rühm või jada ilma katkestusteta; stringide pikkused on suvalised, kuid nende suurus või piirmäär on tavaliselt programmeerimiskeeles määratletud. Andmetüüpidest vanim on Boolean, mis on lihtsalt kas tõene või väär. Muud tüüpide klassid hõlmavad algebralisi, funktsioone, masinaandmeid ja objekte. Näiteks objektorienteeritud keeltes võib objekti esivanem kasutada põhiobjekti tüüpi, nii et nende suhtlus sujub sujuvamalt.

Tüüpide teisendamise eripärad ei tule tõesti mängu enne, kui on arvesse võetud konkreetse programmeerimiskeele reegleid. Mõned keelereeglid määravad veelgi, kas tüübiteisendus on kaudne või otsene. Kaudset tüübiteisendust nimetatakse kõige sagedamini sunniks ja see toimub tavaliselt ajal, mil programm kompileeritakse lähtekoodist käivitatavaks programmiks. See võib juhtuda näiteks siis, kui avaldises kasutatakse mitut andmetüüpi ja seejärel viiakse läbi võrdlus. Tüübi teisendust peetakse kaudseks ja kompilaator käsitleb seda automaatselt; selgesõnaline tüübiteisendus on määratletud programmi koodis. Programmeerimiskeel C teeb nende kahe vahel vahet, nimetades kaudset tüübi teisendamist sunniks ja eksplitsiitset tüübi teisendamist castiks.

Lihtne näide tavalisest tüübiteisendusest oleks matemaatilised toimingud arvudega arvutiprogrammis. Arvutiprogramm, mis võtab sisendina vastu kümnendarvu ehk ujukoma andmetüübi, võib vajada arvu teisendamist täisarvuliseks andmetüübiks, et sooritada matemaatilisi toiminguid, või vastupidi. See teisendus võimaldab toimingut jätkata.