Sobes.tech
Junior

Swift-də sinif obyektlərinə və struktur obyektlərinə necə müraciət edilir?

sobes.tech Süni İntellekt

AI-dan cavab

Sınıf obyektləri (referans tipi):

Sınıf nümunəsi dəyişənə və ya sabitə təyin olunduqda, həmin nümunəyə referans təyin edilir. Bir referans vasitəsilə edilən dəyişikliklər, həmin nümunəyə işarə edən bütün referanslarda görünəcək.

class MənimSinif {
    var dəyər: Int = 0
}

let obyekt1 = MənimSinif() // Nümunə yaradılır
let obyekt2 = obyekt1   // obyekt2 indi həmin nümunəyə işarə edir
obyekt1.dəyər = 10      // obyekt1 vasitəsilə dəyişiklik
print(obyekt2.dəyər)    // 10 göstərəcək - dəyişiklik obyekt2 vasitəsilə də görünür

Strukturlar (dəyər tipi):

Struktur nümunəsi dəyişənə və ya sabitə təyin olunduqda, onun nüsxəsi yaradılır. Hər bir dəyişən/sabit öz müstəqil nüsxəsini saxlayır. Bir nüsxədə edilən dəyişikliklər digərini təsir etmir.

struct MənimStruktür {
    var dəyər: Int = 0
}

var struktur1 = MənimStruktür() // Nümunə yaradılır
var struktur2 = struktur1   // struktur1-in nüsxəsi yaradılır
struktur1.dəyər = 20          // dəyişiklik struktur1 vasitəsilə
print(struktur2.dəyər)        // 0 göstərəcək - struktur2 dəyişməz qalır

Müqayisə:

Xüsusiyyət Siniflər Strukturlar
Tip Referans Dəyər
Təyin etmə Referans kopyalanır Dəyər kopyalanır
Dəyişikliklər Bütün referanslarda görünür Yalnız kopyaya təsir edir
İrsi Dəstəklənir Dəstəklənmir
Kimlik Yoxlamaq mümkündür (===) Kimlik anlayışı yoxdur

Sınıf və ya struktur seçimi tələblərə bağlıdır. Struktur kiçik və sadə məlumat tipləri üçün istifadə olunur, məsələn, Point, Size, Range. Sınıflar isə, daha mürəkkəb məlumat tipləri üçün, referans semantikasını, irsi və ya obyektin həyat dövrünü idarə etməyi tələb edən hallarda istifadə olunur, məsələn, UIViewController, UIView.