Junior
Bir neçə valideyndən strukturu miras almaq mümkündürmü?
sobes.tech Süni İntellekt
AI-dan cavab
Xeyr. Objective-C və Swift-də strukturlar çoxlu irsiyyəti dəstəkləmir.
Swift-də strukturlar əhəmiyyətli imkanlara malikdir, o cümlədən protokollar, genişləndirmələr, metodlar, hesablanan xüsusiyyətlər, yadda saxlanan xüsusiyyətlər və başlanğıcçılar.
Ancaq, Swift-də oxşar məqsədlərə çatmaq üçün istifadə olunur:
-
Protokollar: Tələblər toplusunu (metodlar, xüsusiyyətlər, başlanğıcçılar) müəyyən edir. Bir növ (struktur və ya sinf) bir və ya bir neçə protokola uyğun ola bilər və beləliklə onların "davranışını" əldə edir.
// Protokol nümunəsi protocol Animal { var name: String { get } func makeSound() } // Protokola uyğun struktur struct Dog: Animal { let name: String func makeSound() { print("Hav hav!") } } -
Genişləndirmələr: Mövcud tiplərə yeni funksiyalar əlavə edir, onun mənbə kodunu dəyişmədən.
// String üçün genişləndirmə nümunəsi extension String { func reversedWords() -> String { let words = self.split(separator: " ") return words.reversed().joined(separator: " ") } } // Genişləndirmənin istifadəsi let sentence = "Salam dünya" print(sentence.reversedWords()) // Nəticə: dünya Salam
Swift-də sinflər tək irsiyyəti dəstəkləyir, lakin çox protokol tətbiq edə bilər.