Junior
Lze dědit strukturu od více rodičů?
sobes.tech AI
Odpověď od AI
Ne. V Objective-C a Swift struktury ne podporují vícenásobnou dědičnost.
Ve Swiftu mají struktury významné schopnosti, včetně protokolů, rozšíření, metod, vypočítaných vlastností, uložených vlastností a inicializátorů.
Nicméně, pro dosažení podobných cílů ve Swiftu se používají:
-
Protokoly: Definují sadu požadavků (metody, vlastnosti, inicializátory). Typ (struktura nebo třída) může splnit jeden nebo více protokolů, čímž získává jejich "chování".
// Příklad protokolu protocol Animal { var name: String { get } func makeSound() } // Struktura odpovídající protokolu struct Dog: Animal { let name: String func makeSound() { print("Haf haf!") } } -
Rozšíření (Extensions): Přidávají nové funkce k existujícímu typu bez změny jeho zdrojového kódu.
// Příklad rozšíření pro String extension String { func reversedWords() -> String { let words = self.split(separator: " ") return words.reversed().joined(separator: " ") } } // Použití rozšíření let sentence = "Ahoj svět" print(sentence.reversedWords()) // Výstup: svět Ahoj
Třídy ve Swiftu podporují jednoduchou dědičnost od jedné rodičovské třídy, ale mohou implementovat více protokolů.