Junior — Middle
Aké ďalšie dátové typy, okrem tried, sa považujú za referenčné typy v programovacom jazyku?
sobes.tech AI
Odpoveď od AI
V jazyku Swift, okrem tried patrí medzi referenčné typy:
- Záväzky (Closures) — funkcie, ktoré môžu zachytiť a uložiť odkazy na premenné z okolia.
- Funkcie — vo Swift sú funkcie referenčné typy.
- Niektoré typy z Objective-C, ako objekty Foundation (NSString, NSArray atď.) — sú implementované ako triedy a sú referenčné typy.
Na rozdiel od štruktúr a enumerácií, ktoré sú typy hodnoty, sú referenčné typy odovzdávané odkazom, teda pri priraďovaní alebo odovzdaní do funkcie sa kopíruje odkaz na ten istý objekt, nie jeho kópia.
Príklad:
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) // Vypíše "Bob", pretože person1 a person2 odkazujú na ten istý objekt