Sobes.tech
Middle

Kdy je lepší používat hodnotové typy a kdy referenční typy?

sobes.tech AI

Odpověď od AI

Hodnotové typy (například struktury, výčty, n-tice) se při přenosu nebo přiřazení kopírují. Změny jedné kopie neovlivňují ostatní.

Referenční typy (například třídy, uzávěry, funkce) předávají odkaz na stejný exemplář. Změny provedené na jednom odkazu se odrážejí ve všech ostatních odkazech na stejný objekt.

Je lepší používat hodnotové typy:

  • Když je důležitá nezávislost kopií.
  • Pro malé, jednoduché datové struktury, kde je kopírování levnější než správa referenčního typu.
  • Pro zajištění bezpečnosti v konkurenčním prostředí (změny neovlivňují ostatní vlákna).
  • Když je požadována garantovaná neměnitelnost po vytvoření.

Je lepší používat referenční typy:

  • Když je potřeba mít jeden sdílený exemplář objektu přístupný z různých částí kódu.
  • Pro velké, složité datové struktury nebo objekty, kde by kopírování bylo neefektivní.
  • Když je požadována polymorfie nebo dědičnost (třídy tyto možnosti podporují).
  • Pro objekty s řízením životního cyklu (například díky ARC).
  • Když je potřeba sdílená změnitelnost stavu mezi částmi aplikace.