Sobes.tech
Junior — Middle

Koji drugi tipovi podataka, osim klasa, se smatraju referentnim tipovima u programskom jeziku?

sobes.tech АИ

Одговор од АИ

U jeziku Swift, osim klasa, tipovi referenci uključuju:

  • Zatvaranja (Closures) — funkcije koje mogu uhvatiti i sačuvati reference na promenljive iz okruženja.
  • Funkcije — u Swift-u, funkcije su tipovi referenci.
  • Neki tipovi iz Objective-C, poput objekata Foundation (NSString, NSArray itd.) — implementirani su kao klase i su tipovi referenci.

Za razliku od struktura i enumeracija, koje su tipovi vrednosti, tipovi referenci se prosleđuju putem reference, tj. prilikom dodele ili prosleđivanja u funkciju, kopira se referenca na isti objekat, a ne njegov kopija.

Primer:

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) // Ispisaće "Bob", jer person1 i person2 referenciraju isti objekat