Sobes.tech
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).