Sobes.tech
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