Junior
Co jsou typy hodnot?
sobes.tech AI
Odpověď od AI
Typy hodnot v Swiftu jsou typy, jejichž instance se při přiřazení nebo předání do funkce kopírují. Každá nezávislá kopie má své vlastní úložiště.
Pří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 // Kopie hodnoty
p2.x = 10 // Měníme kopii, p1 se nemění
print(p1.x) // Výstup: 1
print(p2.x) // Výstup: 10
Výhody:
- Předvídatelné chování, protože změny v jedné části kódu neovlivní ostatní kopie.
- Výchozí bezpečnost při práci s lokálními hodnotami.
Nevýhody:
- Kopírování může být nákladné u velkých struktur.
Porovnání s referenčními typy:
| Charakteristika | Typ hodnoty | Referenční typ |
|---|---|---|
| Přiřazení | Kopírování hodnoty | Kopírování odkazu |
| Změna | Mění kopii | Mění originální objekt |
| Příklad | struct, enum, tuple, základní typy | class, closure |