Junior
Czym są typy wartości?
sobes.tech AI
Odpowiedź od AI
Typy wartości w Swift to typy, których egzemplarze są kopiowane podczas przypisywania lub przekazywania do funkcji. Każda niezależna kopia ma własne przechowywanie.
Przykłady:
- 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 // Kopia wartości
p2.x = 10 // Modyfikujemy kopię, p1 się nie zmienia
print(p1.x) // Wydruk: 1
print(p2.x) // Wydruk: 10
Zalety:
- Przewidywalne zachowanie, ponieważ zmiany w jednej części kodu nie wpływają na inne kopie.
- Domyślna bezpieczeństwo przy pracy z wartościami lokalnymi.
Wady:
- Kopiowanie może być kosztowne dla dużych struktur.
Porównanie z typami referencyjnymi:
| Charakterystyka | Typ wartości | Typ referencyjny |
|---|---|---|
| Przypisanie | Kopiowanie wartości | Kopiowanie odnośnika |
| Modyfikacja | Modyfikuje kopię | Modyfikuje oryginalny obiekt |
| Przykład | struct, enum, tuple, podstawowe typy | class, closure |