Sobes.tech
Junior

Z jakimi typami danych można używać odwołań w Swift?

sobes.tech AI

Odpowiedź od AI

W Swift referencje (do adresów) są używane z:

  1. Klasy (Classes): Instancje klas są typami referencyjnymi. Gdy instancja klasy jest przypisywana do zmiennej lub stałej, kopiowana jest referencja do obiektu, a nie sam obiekt.
  2. Zamknięcia (Closures): Przechwytywanie zmiennych w zamknięciu odbywa się przez referencję.
  3. Aktorzy (Actors): Instancje aktorów są również typami referencyjnymi.
  4. Niektóre typy systemowe: Na przykład AnyObject, NSObject i typy z zestawu Core Foundation (np. CFString).
  5. Parametry wejściowe/wyjściowe (inout): Pozwalają przekazywać zmienne do funkcji przez referencję, aby funkcja mogła zmienić ich wartość.
// Przykład z klasą
class MyClass {
    var value = 10
}

let instance1 = MyClass()
let instance2 = instance1 // instance2 odnosi się do tego samego obiektu
instance2.value = 20
print(instance1.value) // Wyświetli 20

// Przykład z inout
func modifyValue(value: inout Int) {
    value = value * 2
}

var myInt = 5
modifyValue(value: &myInt)
print(myInt) // Wyświetli 10

Struktury, wyliczenia i krotki są typami wartości, i podczas przypisywania lub przekazywania, ich zawartość jest kopiowana, a nie referencja.