Sobes.tech
Junior — Middle

Ce alte tipuri de date, în afară de clase, sunt considerate tipuri de referință în limbajul de programare?

sobes.tech AI

Răspuns de la AI

În limbajul Swift, pe lângă clase, tipurile de referință includ:

  • Closures — funcții care pot captura și păstra referințe la variabile din contextul înconjurător.
  • Funcții — în Swift, funcțiile sunt tipuri de referință.
  • Unele tipuri din Objective-C, cum ar fi obiectele Foundation (NSString, NSArray etc.) — sunt implementate ca clase și sunt tipuri de referință.

Spre deosebire de structuri și enumerări, care sunt tipuri de valoare, tipurile de referință sunt transmise prin referință, adică la atribuirea sau transmiterea către o funcție, se copiază referința la același obiect, nu o copie a acestuia.

Exemplu:

class Person {
    var name: String
    init(name: String) {
        self.name = name
    }
}

let person1 = Person(name: "Alice")
let person2 = person1
person2.name = "Bob"
print(person1.name) // Va afișa "Bob", deoarece person1 și person2 fac referire la același obiect