Referanse (informatikk)

(Omdirigert fra «Referanse (programmering)»)

En referanse er innen informatikk et lite objekt som inneholder informasjon som refererer til data et annet sted, i motsetning til at objektet inneholder dataene selv. Å aksessere data som en referanse refererer til kalles å dereferere referansen.

Referanser brukes til å representere mange datastrukturer og for å utveksle informasjon mellom de forskjellige delene av et dataprogram.

Analogi til gateadresse rediger

En referanse kan sammenlignes med adressen til et hus. Det er en liten identifikator som gjør deg i stand til å finne et objekt som inneholder den informasjonen du ønsker å få tak i. For eksempel vil det å se et hus fortelle fargen på huset, men adressen vil ikke; den bare gjør oss i stand til å finne det. Likevel, dersom en ønsker å finne fargen til et hus, er adressen tilstrekkelig, fordi den gjør det mulig å finne huset. Å finne et hus basert på en adresse tilsvarer å dereferere en peker.

Et mer avansert eksempel kan være at man etterlater seg en adresse til nytt bosted hver gang man flytter. En venn kan dermed besøke det første bostedet, få adressen til neste hus og deretter besøke dette og så videre inntil vennen når det nåværende bostedet. Dette tilsvarer hvordan referanser brukes i lenket liste.

En annen fordel med adresser er at de er mye lettere å håndtere enn hus. Et eksempel er at man ønsker å ordne folkene i en gate slik at de er lette å finne basert på etternavn. En mulighet er å bruke en stor kran og fysisk flytte alle husene basert på etternavnet til beboerne. En langt enklere løsning er å lage en liste med adressene i gaten og sortere disse etter etternavnet til de som bor der. Referanser har den samme egenskapen: en kan manipulere referanser til data uten at en er nødt til å flytte eller selve dataene, noe som ofte er langt mer effektivt.

Andre eksempler på referanser i dagliglivet er telefonnummer, e-post-adresser og URLer.

Fordeler med referanser rediger

Referanser øker fleksibiliteten i hvordan objekter kan lagres, hvordan de blir allokert, og hvordan de sendes mellom ulike deler av koden. Så lenge vi er i stand til å aksessere referansen til dataene, kan vi aksessere dataene via referansen uten at dataene må bli flyttet på. Dette gjør at ulike deler av koden kan bruke de samme dataene enklere, ved at hver del holder en referanse til dataene.

Selv om det finnes forskjeller i hvordan referanser brukes i forskjellige programmeringsspråk er det en fundamental egenskap, som finnes i så godt som alle moderne programmeringsspråk.

Pekere er den meste primitive og usikre, men også den kraftigste og effektive typen av referanse. Pekere er bare adressen til et annet objekt.