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