Sobes.tech
Junior

Kas ir atsauces datu tipi?

sobes.tech AI

Atbilde no AI

Saistīto tipu dati nesaglabā pašu vērtību, bet saiti (adresu atmiņā) uz vietu, kur šī vērtība ir glabāta. Piešķirot vai pārsūtot šādus datus, tiek kopēta tikai saite, nevis pilnīgs objekts. Izmaiņas, kas veiktas ar vienu saiti, būs redzamas, piekļūstot caur citām saitēm, kas norāda uz to pašu objektu.

Piemēri saistīto tipu datiem dažādās valodās:

  • Java: Klases (String, Object, lietotāja definētas klases), saskarnes, masīvi.
  • C#: Klases (string, object, lietotāja definētas klases), saskarnes, delegāti, masīvi.
  • Python: Visu datu tipu (saraksti, vārdnīcas, tuple, kopas, klases, funkcijas).
# Python piemērs
list1 = [1, 2, 3]
list2 = list1  # list2 norāda uz to pašu sarakstu, kas ir list1

list2.append(4)

print(list1)  # Izvade: [1, 2, 3, 4]
print(list2)  # Izvade: [1, 2, 3, 4]

Atšķirība no vērtību tipiem ir tāda, ka vērtību tipi glabā pašu vērtību, un pie priskiršanas vai pārsūtīšanas tiek kopēta visa vērtība.

Salīdzinājuma piemērs:

Īpašība Vērtību tipi Saistīto tipu tipi
Glabāšana Paša vērtība Atsauce uz vērtību
Priskiršana/pārsūtīšana Vērtības kopija Atsauces kopija
Izmaiņas Neietekmē oriģinālu Maina oriģinālu
Piemērs (C#) int, struct, enum class, interface, array