Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
Poslať kópiu:
- Argumenty odovzdané ako kópie: Pri prechode kópiou sa vytvorí kópia skutočného argumentu a odovzdá sa funkcii. Akákoľvek zmena vykonaná na tejto kópii v rámci funkcie neovplyvní pôvodnú premennú mimo funkcie.
- Typy hodnôt: Pass by copy sa bežne používa s typmi hodnôt, čo sú dátové typy, ktoré majú svoju hodnotu priamo. Napríklad v C++ alebo Java sú typy hodnôt int, double, boolean atď.
Prejdite cez referenciu:
- Argumenty ako referencie: Pri prechode odkazom sa funkcii odovzdá odkaz na skutočný argument. Akékoľvek zmeny vykonané v argumente vo funkcii sa priamo prejavia v pôvodnej premennej mimo funkcie.
- Typy referencií: Pass by reference sa často používa s typmi odkazov, čo sú dátové typy, ktoré obsahujú odkaz na miesto v pamäti, kde sú uložené skutočné údaje. Napríklad v C++ a Java sú objekty (inštancie tried) referenčnými typmi.
V niektorých jazykoch možno správanie ovládať explicitne pomocou kľúčových slov, ako napríklad „prechádzať odkazom“ alebo „&“ (pre referenčné parametre) a „prechádzať hodnotou“ alebo „*“ (pre parametre hodnoty).
Napríklad v C++:
```cpp
void increment(int value) { // prechod cez hodnotu
hodnota++; // upraví kópiu
}
void incrementRef(int &value) { // prechod cez odkaz
hodnota++; // upraví pôvodnú premennú
}
int main() {
int x =5; // typ hodnoty
prírastok (x); // x zostáva 5
incrementRef(x); // x sa zmení na 6
}
```
V jazyku Java:
```java
public void increment(int value) { // prechod cez hodnotu
hodnota++; // upraví kópiu
}
public void incrementRef(int &value) { // prechod cez odkaz
hodnota++; // upraví pôvodnú premennú
}
public static void main(String[] args) {
int x =5; // primitívny typ hodnoty
prírastok (x); // x zostáva 5
incrementRef(x); // x sa zmení na 6
}
```
V Pythone sa argumenty vždy odovzdávajú odkazom. Python však používa mechanizmus počítania referencií na riadenie životnosti objektu a môžete vytvárať kópie, ktoré sú nezávislé od počtu referencií pôvodného objektu.
Pochopenie prechodu kópiou a prechodu odkazom pomáha efektívne spravovať pamäť, vyhnúť sa nechceným modifikáciám a zabezpečiť správne správanie funkcií/metód, ktoré fungujú na argumentoch.