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.