Junior
Šta su referentni tipovi?
sobes.tech АИ
Одговор од АИ
Tipovi referentnih tipova (Reference Types) su tipovi podataka koji, prilikom dodeljivanja ili prosleđivanja funkciji, prenose referencu na instancu objekta u memoriji, a ne njegovu kopiju.
Ključne osobine:
- Više promenljivih može da se odnosi na istu instancu objekta.
- Promena stanja objekta putem jedne reference odražava se na sve ostale reference na taj isti objekat.
- Rad sa referentnim tipovima vrši se putem pokazivača na objekte na hrpi (heap).
Primeri referentnih tipova u Swift:
- Klase (
class) - Funkcije (
func) - Zatvaranja (
{...})
U poređenju sa vrednosnim tipovima (Value Types):
| Karakteristika | Referentni tip (Reference Type) | Vrednosni tip (Value Type) |
|---|---|---|
| Šta se prenosi | Referenca (adresa u memoriji) | Kopija vrednosti |
| Mesto skladištenja | Heap | Stack |
| Kopiranje | Referenca se kopira | Vrednost se kopira |
| Izmena | Utiče na originalni objekat | Utiče na kopiju |
class MyClass {
var value: Int
init(value: Int) {
self.value = value
}
}
var object1 = MyClass(value: 10) // Kreiranje instance klase
var object2 = object1 // object2 sada referiše na istu instancu kao i object1
print(object1.value) // Izlaz: 10
print(object2.value) // Izlaz: 10
object2.value = 20 // Izmena preko object2
print(object1.value) // Izlaz: 20 (izmena preko object2 je uticala na object1)
print(object2.value) // Izlaz: 20
Upravljanje memorijom za referentne tipove u Swift-u vrši se pomoću Automatskog brojanja referenci (ARC).