Sobes.tech
Junior

Оё имкон дорад структура аз чанд падар мерос бигирад?

sobes.tech AI

Ҷавоб аз AI

Не. Дар Objective-C ва Swift структураҳо наметавонанд зиёдаравии бисёрро дастгирӣ кунанд.

Дар Swift структураҳо имкониятҳои назаррас доранд, аз ҷумла протоколҳо, васеъкуниҳо, усулҳо, хосиятҳои ҳисобшаванда, хосиятҳои нигоҳдошташуда ва оғозкунандагон.

Бо вуҷуди ин, барои расидан ба ҳадафҳои монанд дар Swift, истифода мешаванд:

  • Протоколҳо: Ҳамҷояи талаботҳоро (усулҳо, хосиятҳо, оғозкунандагон) муайян мекунанд. Навъи (структура ё синф) метавонад ба як ё чанд протокол мувофиқат кунад, ва бо ин роҳ онҳо "рафтор"-и онҳоро ба даст меоранд.

    // Намунаи протокол
    protocol Animal {
        var name: String { get }
        func makeSound()
    }
    
    // Структура, ки ба протокол мувофиқат мекунад
    struct Dog: Animal {
        let name: String
    
        func makeSound() {
            print("Гав!")
        }
    }
    
  • Тамғакунӣ (Extensions): Функсияҳои навро ба навъи мавҷуда илова мекунанд, бе тағир додани коди манбаъ.

    // Намунаи тамғакунӣ барои String
    extension String {
        func reversedWords() -> String {
            let words = self.split(separator: " ")
            return words.reversed().joined(separator: " ")
        }
    }
    
    // Истифодаи тамғакунӣ
    let sentence = "Салом ҷаҳон"
    print(sentence.reversedWords()) // Натиҷа: ҷаҳон Салом
    

Классҳо дар Swift дастгирии танҳо-ҳерарҳияро аз як класс-падар доранд, аммо метавонанд чанд протоколро амалӣ созанд.