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 |