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

  1. 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.
  2. Uzávěry (Closures): Zachycení proměnných v uzávěru probíhá podle odkazu.
  3. Aktorové (Actors): Instance aktorů jsou také referenční typy.
  4. Některé systémové typy: Například AnyObject, NSObject a typy z Core Foundation setu (například CFString).
  5. 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.