Link (programozás)

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2019. október 17-én felülvizsgált verziótól ; az ellenőrzések 14 szerkesztést igényelnek .

A programozásban a hivatkozás  egy olyan objektum, amely bizonyos adatokra mutat, de nem tárolja azokat. Egy objektum hivatkozással történő lekérését hivatkozás megszüntetésének nevezzük .

A hivatkozás nem mutató , hanem egyszerűen egy objektum egy másik neve. A fő különbség a hivatkozás és a mutatók között az, hogy a mutató egy egész szám, ezért egész számokkal végzett műveletek állnak rendelkezésre, míg hivatkozáshoz csak másolási és hivatkozási műveletek érhetők el.

A programozási nyelvekben a referencia egy memóriahely címét tartalmazó változóként valósítható meg . Egyes magas szintű nyelvek képesek objektumhivatkozások használatára is, amikor objektumokat adnak át egy szubrutinnak, illetve onnan.

Link megvalósítási példák

C++

A C++ nyelvű hivatkozásokat valamilyen objektumhoz kell társítani. Így a C++-ban nincsenek "null hivatkozások" (egyetlen objektumhoz sem társítva). A hivatkozások visszaállításához C++ nyelven nincs szükség speciális operátorra. Így a C++-ban a hivatkozások  egy címet közvetlenül a verembe adnak, megkerülve a másolást és a mutatókat. Fordításkor az objektumra és annak nevére vonatkozó összes hivatkozást ennek az objektumnak egyetlen száma helyettesíti.

A következő példában az x paramétert érték, az eredményt pedig referencia adja át. A függvény eredménye az eredménybe kerül:

#include <iostream> névtér használata std ; // e bejegyzés nélkül hozzá kellene fűznünk az "std::"-t a cout és endl értékekhez üres négyzet ( int x , int & eredmény ) { eredmény = x * x ; } int main () { int y = 0 ; // Négyzet inicializálása ( 3 , y ); cout << "y=" << y << endl ; //y=9 return 0 ; }

Java és C#

A Java nem rendelkezik a mutató fogalmával, és a C# ritkán használja helyette a hivatkozás fogalmát. A hivatkozások törlése és az objektumcímek hivatkozásokhoz való hozzárendelése nem igényel speciális operátort.

PHP

A PHP-ben a hivatkozások egyetlen változó tartalmának különböző neveken való elérésének eszközei. Nem olyanok, mint a C-mutatók, és nem szimbólumtábla-álnevek. A PHP-ben a változó neve és a tartalma különböző dolgok, így ugyanannak a tartalomnak különböző nevei is lehetnek. A legközelebbi analógia a Unix fájlnevek és fájlok – a változónevek könyvtárbejegyzések, a változó tartalma pedig maguk a fájlok. A PHP hivatkozásai hasonlóak a Unix fájlrendszerek kemény hivatkozásaihoz (hardlink) .

<?php $a = 'szöveg' ; $b =& $a ; nyomtatás $b ; $a = 5 ; nyomtatás $b ; szöveg 5

Erlang

Az Erlang nyelvű hivatkozás egy  egyedi azonosító adattípusa, amelyet csak összehasonlítások és mintaillesztés végrehajtására használnak [1] :

send_kv ( N , K , V ) -> Referencia = make_ref (), % referencia létrehozása { szerver , N } ! { put , self (), Reference , K , V }, % send request with reference Receive { reply , Reference , ok } -> ok % response to request after 5000 -> { error , timeout } % or timeout end .

Lásd még

Jegyzetek

  1. Martin Logan, Eric Merritt, Richard Carlsson. Erlang és OTP akcióban. – Manning, 2011. – 36 343. o. — 397 p. — ISBN 9781933988788 .