Junior
S jakými datovými typy lze v Swift používat odkazy?
sobes.tech AI
Odpověď od AI
V jazyce Swift se odkazy (na adresy) používají v následujících případech:
- Třídy (Classes): Instance tříd jsou referenční typy. Při přiřazení instance třídy proměnné nebo konstantě se kopíruje odkaz na objekt, nikoliv samotný objekt.
- Uzávěry (Closures): Zachycení proměnných v uzávěru probíhá podle odkazu.
- Aktorové (Actors): Instance aktorů jsou také referenční typy.
- Některé systémové typy: Například
AnyObject,NSObjecta typy z Core Foundation setu (napříkladCFString). - Vstupní/výstupní parametry (
inout): Umožňují předávat proměnné do funkce odkazem, aby mohla funkce změnit jejich hodnotu.
// Příklad s třídou
class MyClass {
var value = 10
}
let instance1 = MyClass()
let instance2 = instance1 // instance2 odkazuje na stejný objekt
instance2.value = 20
print(instance1.value) // Vytiskne 20
// Příklad s inout
func modifyValue(value: inout Int) {
value = value * 2
}
var myInt = 5
modifyValue(value: &myInt)
print(myInt) // Vytiskne 10
Struktury, výčty a n-tice jsou typy hodnot, a při přiřazení nebo předání se kopíruje jejich obsah, nikoliv odkaz.