Sobes.tech
Middle

Kedy je lepšie používať hodnotové typy a kedy referenčné typy?

sobes.tech AI

Odpoveď od AI

Vrednosti tipov (npr. strukture, výčty, n-tice) sa kopírujú pri prenose alebo priraďovaní. Zmeny jednej kópie neovplyvňujú ostatné.

Referenčné typy (napríklad triedy, uzávierky, funkcie) prenášajú odkaz na ten istý exemplár. Zmeny vykonané na jednom odkaze sa odrážajú vo všetkých ostatných odkazoch na ten istý objekt.

Je lepšie používať hodnotové typy:

  • Keď je dôležitá nezávislosť kópií.
  • Pre malé, jednoduché dátové štruktúry, kde je kopírovanie lacnejšie než správa referenčného typu.
  • Na zabezpečenie bezpečnosti v konkurenčnom prostredí (zmeny neovplyvňujú iné vlákna).
  • Keď je požadovaná garantovaná nemennosť po vytvorení.

Je lepšie používať referenčné typy:

  • Keď je potrebné mať jeden spoločný exemplár objektu dostupný z rôznych častí kódu.
  • Pre veľké, zložité dátové štruktúry alebo objekty, kde by kopírovanie bolo neefektívne.
  • Keď je požadovaný polymorfizmus alebo dedičnosť (triedy podporujú tieto možnosti).
  • Pre objekty s riadením životného cyklu (napríklad vďaka ARC).
  • Keď je potrebná spoločná meniteľnosť stavu medzi časťami aplikácie.