Middle
Semantikalar arasındakı fərqlər nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Dəyər Növləri:
- Təyin etmə və ya funksiyaya ötürülərkən kopyalanır.
- Hər dəyişiklik yeni nüsxə yaradır.
- Yığın üzərində saxlanılır (əksər hallarda).
- Nümunələr:
struct,enum, əsas növlər (Int,Double,Bool,String).
İstinad Növləri:
- İstinad vasitəsilə ötürülür.
- Bir neçə dəyişən eyni nümunəyə istinad edə bilər.
- Bir dəyişən vasitəsilə edilən dəyişiklik bütün bu nümunəyə istinad edənlərə təsir edir.
- Heap-də saxlanılır.
- Nümunələr:
class,func.
Müqayisə:
| Xüsusiyyət | Dəyər Növləri | İstinad Növləri |
|---|---|---|
| Kopyalama | Qiymət üzrə | İstinad üzrə |
| Dəyişiklik | Yeni nüsxə yaradılır | Bütün istinadlara təsir edir |
| Saxlama | Yığın (adətən) | Heap |
| Performans | Tez-tez daha sürətli (heap və ARC üçün əlavə xərclər olmadan) | Daha yavaş (heap və ARC səbəbindən) |
| İstək təhlükəsizliyi | Əsasən, iş parçacığı təhlükəsiz (hər iş parçacığı öz nüsxəsi ilə işləyir) | Müxtəlif iş parçacıqlarından girişdə sinxronizasiya tələb edir |