Wat is typeconversie?
Type conversie is een vorm van type punning, een techniek die wordt gebruikt in de informatica en computerprogrammatuur waarbij het gegevenstype van een specifieke entiteit wordt gewijzigd in een ander gegevenstype. Het concept van type punning kwam tot stand rond het gespecificeerde type systeem van een programmeertaal, zodat bepaalde effecten kunnen worden bereikt die anders moeilijk te doen zouden zijn binnen de grenzen van de formele definitie van de programmeertaal. Typeconversie, de meest voorkomende vorm van typepunning, is mogelijk in vrijwel alle programmeertalen, hoewel sommige talen aanvullende methoden voor typepunning bieden, zoals unie of herinterpretatie. Sommige programmeerstijlgidsen suggereren tegen type punning, ook al wordt typeconversie toch vaak gebruikt.
Typeconversie wordt soms ook typecasting of dwang genoemd, afhankelijk van de programmeertaal die wordt gebruikt. Elke programmeertaal heeft regels voor het succesvol gebruiken van typeconversie. Over het algemeen kunnen conversies plaatsvinden op basistypen of objecten.
Er zijn verschillende fundamentele gegevenstypen of klassen van gegevenstypen. Een veelgebruikt gegevenstype dat wordt gebruikt in wiskundige bewerkingen zijn gehele getallen, of gewone getallen, die kunnen variëren van duizenden of miljoenen, afhankelijk van het aantal bits in hun breedte. Een 32-bits geheel getal kan bijvoorbeeld variëren van nul tot 4.294.967.295 of -2.147.483.648 tot 2.147.483.648. Een ander type is het drijvende-kommagetal, dat in principe elk getal met een decimaalteken is.
Enkele tekens, zoals een letter van het alfabet of een leesteken, kunnen ook als gegevenstype worden gebruikt. Een stringgegevenstype is een willekeurige groep of reeks cijfers en / of letters zonder pauze; tekenreekslengtes zijn willekeurig, maar hun grootte of limiet wordt meestal gedefinieerd in de programmeertaal. De oudste van gegevenstypen is de Boolean, die gewoon waar of onwaar is. Andere soorten klassen omvatten algebraïsch, functies, machinegegevens en objecten. In objectgeoriënteerde talen kan de voorouder van een object bijvoorbeeld het type ouderobject gebruiken, zodat hun interacties met elkaar soepeler verlopen.
De bijzonderheden van typeconversie spelen pas echt een rol als de regels van een bepaalde programmeertaal in aanmerking zijn genomen. De regels van sommige talen bepalen verder of een typeconversie impliciet of expliciet is. Een impliciete conversie van het type wordt meestal een dwang genoemd en vindt meestal plaats op het moment dat een programma wordt gecompileerd van de broncode in een uitvoerbaar programma. Dit kan bijvoorbeeld gebeuren als meerdere gegevenstypen in een expressie worden gebruikt en vervolgens een vergelijking wordt uitgevoerd. De typeconversie wordt als impliciet beschouwd en de compiler verwerkt deze automatisch; een expliciete typeconversie is gedefinieerd in de code van het programma. De programmeertaal C maakt een onderscheid tussen de twee en noemt een impliciete typeconversie een dwang en een expliciete typeconversie een cast.
Een eenvoudig voorbeeld van een algemene typeconversie zou wiskundige bewerkingen op getallen in een computerprogramma zijn. Een computerprogramma dat een decimaal getal, een gegevenstype met drijvende komma, ontvangt als invoer, moet het aantal mogelijk omzetten in een geheel gegevenstype om wiskundige bewerkingen uit te voeren, of omgekeerd. Met deze conversie kan de bewerking worden voortgezet.