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