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:
- 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.
- Closures (Uzávery): Zachytenie premenných v uzávere sa deje podľa referencie.
- Aktor (Actors): Inštancie aktérov sú tiež referenčné typy.
- Niektoré systémové typy: Napríklad,
AnyObject,NSObjecta typy zo sady Core Foundation (napríkladCFString). - 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.