Link (programmering)

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 17. oktober 2019; checks kræver 14 redigeringer .

En reference i programmering  er et objekt, der peger på bestemte data, men som ikke gemmer dem. At få et objekt ved reference kaldes dereferencing .

En reference er ikke en pointer , men er blot et andet navn for et objekt. Hovedforskellen mellem en reference og pointere er, at en pointer er et heltal, og derfor er operationer med heltal tilgængelige for den, mens kun kopi- og dereferenceoperationer er tilgængelige for en reference.

I programmeringssprog kan en reference implementeres som en variabel, der indeholder adressen på en hukommelsesplacering . Nogle sprog på højt niveau har også evnen til at bruge objektreferencer, når objekter sendes til og fra en subrutine.

Eksempler på linkimplementering

C++

Referencer i C++ skal være knyttet til et eller andet objekt. Der er således ingen "null-referencer" (ikke forbundet med noget objekt) i C++. Der kræves ikke en speciel operatør at derhenvise referencer i C++. I C++ er referencer  således en form for at sende en adresse direkte til stakken, uden om kopiering og pointere. Ved kompilering erstattes alle referencer til et objekt og dets navn af et enkelt nummer på dette objekt.

I det følgende eksempel sendes x-parameteren efter værdi, og resultatet videregives som reference. Resultatet af funktionen placeres i resultat:

#include <iostream> bruger navneområde std ; // uden denne post, ville vi være nødt til at tilføje "std::" til cout og endl tom firkant ( int x , int & resultat ) { resultat = x * x ; } int main () { int y = 0 ; //Initialiser kvadrat ( 3 , y ); cout << "y=" << y << endl ; //y=9 returnere 0 ; }

Java og C#

Java har ikke begrebet en pointer, og C# bruger sjældent begrebet reference i stedet. Det kræver ikke en speciel operatør at derhenvise referencer og tage objektadresser til at tildele til referencer.

PHP

Referencer i PHP er et middel til at få adgang til indholdet af en enkelt variabel under forskellige navne. De er ikke som C-pointere og er ikke symboltabelaliasser. I PHP er et variabelnavn og dets indhold forskellige ting, så det samme indhold kan have forskellige navne. Den nærmeste analogi er Unix-filnavne og -filer - variabelnavne er mappeposter, og variabelt indhold er selve filerne. Links i PHP er analoge med hårde links (hardlinks) i Unix-filsystemer.

<?php $a = 'tekst' ; $b =& $a ; udskriv $b ; $a = 5 ; udskriv $b ; tekst 5

Erlang

En reference i Erlang er en  datatype for en unik identifikator, der kun bruges til at udføre sammenligninger og mønstermatchning [1] :

send_kv ( N , K , V ) -> Reference = make_ref (), % create reference { server , N } ! { put , self (), Reference , K , V }, % send request inklusive reference receive { reply , Reference , ok } -> ok % response to request after 5000 -> { error , timeout } % or timeout end .

Se også

Noter

  1. Martin Logan, Eric Merritt, Richard Carlsson. Erlang og OTP i aktion. — Manning, 2011. — S. 36.343. — 397 s. — ISBN 9781933988788 .