İlk olaraq deyim ki, azərbaycanca bu yazıları yazmaqda məqsədim yeni başlayan yerli developerlərin işlərini bir az rahatlaşdırmaqdır. (Xarici dillərdə minlərlə resurs var və hamısı bir-birindən gözəldir)
İndi isə gələk əsas məsələyə: as? as! və as arasında fərqlər nədir?
’as’ keyword-u ümumilikdə upcasting və downcasting üçün istifadə edilir. Əgər onlar haqqında qısaca demiş olsam, belə izah verərdim:
• Downcasting — bir parent class-ın, özünün child class-na çevrilməsidir.
• Upcasting — bir child class-ın, özünün parent class-na çevrilməsidir.
Upcasting compile zamanı yoxlanıla bilir və heçvaxt xəta verməyəcək deyənə, yalnız as keyword-u ilə keçinə bilir.
Downcasting isə run time zamanı xəta verə bilər, çünkü downcast edilə biləcəyi tip-dən əmin deyil, başqa sözlə downcast edilə biləcək çox tip ola bilər. Bu xəta halı olanda da proqram error atıb qırılır və buna görə də Optional-ın köməyi ilə downcasting edilir, bu da öz növbəsində bizlərə as? və as! təqdim edir.
Optional-lar haqqında da bir zaman qısa məqalə yazmağı düşünürəm. Onu ötürməmək üçün bloqumu izləməyi unutmayın deyirəm, ama səbirsiz olanlar bilirəm ki, gedib google edəcəklər onsuz. Ona görə bloquma abunə olmağı özünüzə buraxıb, hələlik deyirəm 😉