Junior
Čo sú typy hodnôt?
sobes.tech AI
Odpoveď od AI
Typy hodnôt v Swift sú typy, ktorých exempláre sa kopírujú pri priraďovaní alebo odovzdaní do funkcie. Každá nezávislá kópia má vlastné uloženie.
Príklady:
- Structs
- Enums
- Tuples
- Integer, Float, Double, Bool, String, Array, Dictionary, Set
struct Point {
var x: Int
var y: Int
}
var p1 = Point(x: 1, y: 2)
var p2 = p1 // Kopírovanie hodnoty
p2.x = 10 // Meníme kópiu, p1 sa nemení
print(p1.x) // Výstup: 1
print(p2.x) // Výstup: 10
Výhody:
- Predvídateľné správanie, pretože zmeny v jednej časti kódu neovplyvňujú iné kópie.
- Predvolená bezpečnosť pri práci s lokálnymi hodnotami.
Nevýhody:
- Kopírovanie môže byť nákladné pre veľké štruktúry.
Porovnanie s referenčnými typmi:
| Charakteristika | Typ hodnoty | Referenčný typ |
|---|---|---|
| Priraďovanie | Kopírovanie hodnoty | Kopírovanie odkazu |
| Zmena | Mení kópiu | Mení pôvodný objekt |
| Príklad | struct, enum, tuple, základné typy | class, closure |