Sobes.tech
Junior

S akými dátovými typmi je možné v Swift používať odkazy?

sobes.tech AI

Odpoveď od AI

V Swift-u se referencie (na adresy) používajú v nasledovných prípadoch:

  1. Triedy (Classes): Inštancie tried sú referenčné typy. Keď sa inštancia triedy priradí k premennej alebo konštante, kopíruje sa referencia na objekt, nie samotný objekt.
  2. Closures (Uzávery): Zachytenie premenných v uzávere sa deje podľa referencie.
  3. Aktor (Actors): Inštancie aktérov sú tiež referenčné typy.
  4. Niektoré systémové typy: Napríklad, AnyObject, NSObject a typy zo sady Core Foundation (napríklad CFString).
  5. Vstupné/výstupné parametre (inout): Umožňujú odovzdávať premenné do funkcie podľa referencie, aby funkcia mohla zmeniť ich hodnotu.
// Príklad s triedou
class MyClass {
    var value = 10
}

let instance1 = MyClass()
let instance2 = instance1 // instance2 odkazuje na ten istý objekt
instance2.value = 20
print(instance1.value) // Vypíše 20

// Príklad s inout
func modifyValue(value: inout Int) {
    value = value * 2
}

var myInt = 5
modifyValue(value: &myInt)
print(myInt) // Vypíše 10

Štruktúry, enumerácie a n-tice sú typy-hodnôt, a pri priraďovaní alebo odovzdávaní sa ich obsah kopíruje, nie referencia.