Sobes.tech
Middle

Jaké jsou rozdíly mezi sémantikami?

sobes.tech AI

Odpověď od AI

Typy hodnot:

  • Kopírují se při přiřazení nebo předání do funkce.
  • Každá změna vytvoří novou kopii.
  • Ukládají se na zásobník (ve většině případů).
  • Příklady: struct, enum, základní typy (Int, Double, Bool, String).

Typy odkazů:

  • Předávají se odkazem.
  • Několik proměnných může odkazovat na stejný exemplář.
  • Změna přes jednu proměnnou ovlivní všechny odkazy na tento exemplář.
  • Ukládají se na haldě.
  • Příklady: class, func.

Porovnání:

Vlastnost Typy hodnot Typy odkazů
Kopírování Podle hodnoty Podle odkazu
Změna Vytvoří se nová kopie Ovlivní všechny odkazy
Uložení Zásobník (obvykle) Haldě
Výkon Často rychlejší (bez režie haldy a ARC) Pomalejší (kvůli haldě a ARC)
Bezpečnost vláken Výchozí, vlákna bezpečná (každé vlákno pracuje se svou kopií) Vyžaduje synchronizaci při sdíleném přístupu z různých vláken