Junior
Kas yra nuorodų duomenų tipai?
sobes.tech AI
Atsakymas iš AI
Nuorodų tipai saugo ne patį reikšmę, o nuorodą (adresą atmintyje) į vietą, kur ši reikšmė saugoma. Priskiriant ar perduodant tokius duomenis, kopijuojama tik nuoroda, o ne visas objektas. Pakeitimai, atlikti per vieną nuorodą, bus matomi, kai prie jų bus prieinama per kitas nuorodas, nurodančias į tą patį objektą.
Pavyzdžiai nuorodų tipų skirtingose kalbose:
- Java: Klasės (
String,Object, naudotojo klasės), sąsajos, masyvai. - C#: Klasės (
string,object, naudotojo klasės), sąsajos, delegatai, masyvai. - Python: Visų duomenų tipai (sąrašai, žodynai, tuple, rinkiniai, klasės, funkcijos).
# Pavyzdys Python kalba
list1 = [1, 2, 3]
list2 = list1 # list2 nurodo į tą patį sąrašą kaip ir list1
list2.append(4)
print(list1) # Išvestis: [1, 2, 3, 4]
print(list2) # Išvestis: [1, 2, 3, 4]
Skirtumas nuo reikšmių tipų tas, kad reikšmių tipai saugo pačią reikšmę, ir priskyrimo/perdavimo metu kopijuojama visa reikšmė.
Palyginimo pavyzdys:
| Savybė | Reikšmių tipai | Nuorodų tipai |
|---|---|---|
| Saugojimas | Pačią reikšmę | Nuoroda į reikšmę |
| Priskyrimas/perdavimas | Reikšmės kopija | Nuorodos kopija |
| Pakeitimas | Neįtakoja originalo | Keičia originalą |
| Pavyzdys (C#) | int, struct, enum |
class, interface, array |