Sobes.tech
Junior — Middle

Milyen más adattípusok, a osztályokon kívül, tekinthetők referencia típusoknak a programozási nyelvben?

sobes.tech MI

Válasz az MI-től

A Swift nyelvben, a osztályokon kívül, a referencia típusok a következők:

  • Zárójelek (Closures) — olyan függvények, amelyek képesek rögzíteni és tárolni a környezeti változókra mutató hivatkozásokat.
  • Függvények — Swiftben a függvények referencia típusok.
  • Néhány Objective-C típus, például Foundation objektumok (NSString, NSArray stb.) — osztályként vannak megvalósítva és referencia típusok.

A struktúrák és az enumerációk értéktípusok (value types), míg a referencia típusok referencia által kerülnek átadásra, azaz másoláskor ugyanarra az objektumra mutató hivatkozás kerül átadásra, nem az objektum másolata.

Példa:

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) // "Bob" lesz a kimenet, mivel a person1 és person2 ugyanarra az objektumra mutat